Поделиться через


Ошибка компилятора C3149

"type" : не удается использовать этот тип здесь без символа верхнего уровня"

Объявление не было указано правильно.

Например, возможно, вы определили тип СРЕДЫ CLR в глобальной области и попытались создать переменную типа в рамках определения. Поскольку глобальные переменные типов CLR не допускаются, компилятор создаст C3149.

Чтобы устранить эту ошибку, объявите переменные типов СРЕДЫ CLR в определении функции или типа.

Следующий пример приводит к возникновению ошибки 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
}

Следующий пример приводит к возникновению ошибки C3149:

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