We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Compiler Warning C4394

'function' : per-appdomain symbol should not be marked with __declspec(dllexport)

A function marked with the appdomain __declspec modifier is compiled to MSIL (not to native), and export tables (export __declspec modifier) are not supported for managed functions.

You can declare a managed function to have public accessibility, see Type and Member Visibility for more information.

C4394 is always issued as an error. You can turn off this warning with the #pragma warning or /wd; see warning or /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warning Level) for more information.

The following sample generates C4394.

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