Compartilhar via


Erro do compilador C3149

'type': não é possível usar este tipo aqui sem um 'char' de alto nível

Uma declaração não foi especificada corretamente.

Por exemplo, você pode ter definido um tipo CLR no escopo global e tentado criar uma variável do tipo como parte da definição. Como variáveis globais de tipos CLR não são permitidas, o compilador gerará C3149.

Para resolver esse erro, declare variáveis de tipos CLR dentro de uma definição de função ou tipo.

A amostra a seguir gera C3149:

// C3149.cpp
// compile with: /clr
using namespace System;
int main() {
   // declare an array of value types
   array< Int32 ^> IntArray;   // C3149
   array< Int32>^ IntArray2;   // OK
}

A amostra a seguir gera C3149:

// C3149b.cpp
// compile with: /clr /c
delegate int MyDelegate(const int, int);
void Test1(MyDelegate m) {}   // C3149
void Test2(MyDelegate ^ m) {}   // OK