Avertissement du compilateur (niveau 1) C4747

Appel de « point d’entrée » managé : le code managé peut ne pas être exécuté sous le verrou du chargeur, y compris le point d’entrée DLL et les appels atteints à partir du point d’entrée DLL

Le compilateur a trouvé un point d’entrée DLL (probable) compilé dans MSIL. En raison de problèmes potentiels liés au chargement d’une DLL dont le point d’entrée a été compilé dans MSIL, vous êtes fortement déconseillé de compiler une fonction de point d’entrée DLL vers MSIL.

Pour plus d’informations, consultez l’initialisation des assemblys mixtes et des outils Éditeur de liens LNK1306.

Pour corriger cette erreur

  1. Ne compilez pas le module avec /clr.

  2. Marquez la fonction de point d’entrée avec #pragma unmanaged.

Exemple

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

// C4747.cpp
// compile with: /clr /c /W1
// C4747 expected
#include <windows.h>

// Uncomment the following line to resolve.
// #pragma unmanaged

BOOL WINAPI DllMain(HANDLE hInstance, ULONG Command, LPVOID Reserved) {
   return TRUE;
};