Avertissement du compilateur (niveau 1, erreur) C4394

'function' : le symbole par domaine d’application ne doit pas être marqué avec __declspec(dllexport)

Une fonction marquée avec le modificateur appdomain__declspec est compilée en MSIL (non native) et les tables d’exportation (modificateur d’exportation__declspec) ne sont pas prises en charge pour les fonctions managées.

Vous pouvez déclarer une fonction managée pour avoir une accessibilité publique. Pour plus d’informations, consultez Visibilité de type et visibilité des membres.

C4394 est toujours émis en tant qu’erreur. Vous pouvez désactiver cet avertissement ou modifier son niveau avec #pragma warning ou /wd. Pour plus d’informations, consultez avertissement ou /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (niveau d’avertissement).

Exemple

L’exemple suivant génère l’erreur C4394.

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