Avertissement du compilateur (niveau 1, erreur) C4394
« fonction » : le symbole per-appdomain 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 export __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é de membre.
L’avertissement C4394 est toujours présenté comme une 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’échantillon suivant génère l’avertissement C4394.
// C4394.cpp
// compile with: /clr /c
__declspec(dllexport) __declspec(appdomain) int g1 = 0; // C4394
__declspec(dllexport) int g2 = 0; // OK