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


Предупреждение компилятора (уровень 1, ошибка) C4394

Function: символ домена приложения не должен быть помечен как __declspec(dllexport)

Функция, помеченная модификатором приложения__declspec , компилируется в MSIL (не в собственном коде), а таблицы экспорта (модификатор экспорта__declspec ) не поддерживаются для управляемых функций.

Вы можете объявить управляемую функцию для общедоступной доступности. Дополнительные сведения см. в разделе "Видимость типов" и "Видимость элемента".

C4394 всегда выдается как ошибка. Вы можете отключить это предупреждение или изменить его уровень с #pragma warning помощью или /wd. Дополнительные сведения см. в разделе предупреждения или /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (уровень предупреждения).

Пример

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

// C4394.cpp
// compile with: /clr /c
__declspec(dllexport) __declspec(appdomain) int g1 = 0;   // C4394
__declspec(dllexport) int g2 = 0;   // OK