Partager via


Avertissement du compilateur (niveau 1) C4747

Mise à jour : novembre 2007

Message d'erreur

Appel de 'PointEntrée' managé : impossible d'exécuter du code managé lors du verrouillage du chargeur, y compris le point d'entrée de DLL et les appels accessibles à partir du point d'entrée de DLL
Calling managed 'entrypoint': Managed code may not be run under loader lock, including the DLL entrypoint and calls reached from the DLL entrypoint

Le compilateur a détecté un point d'entrée de DLL (probable) compilé en code MSIL. En raison de problèmes potentiels liés au chargement d'une DLL dont le point d'entrée a été compilé en code MSIL, il est fortement déconseillé de compiler une fonction de point d'entrée de DLL en code MSIL.

Pour plus d'informations, consultez Initialisation d'assemblys mixtes et Erreur 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;
};