Compilerwarnung (Stufe 1) C4747

Aktualisiert: November 2007

Fehlermeldung

Aufruf von 'Einstiegspunkt' (verwaltet): Verwalteter Code darf nicht unter der Loadersperre, einschließlich des DLL-Einstiegspunkts und Aufrufen, die vom DLL-Einstiegspunkt eingehen, ausgeführt werden.
Calling managed 'entrypoint': Managed code may not be run under loader lock, including the DLL entrypoint and calls reached from the DLL entrypoint

Vom Compiler wird ein (möglicher) zu MSIL kompilierter DLL-Einstiegspunkt festgestellt. Aufgrund möglicher Probleme beim Laden einer DLL, deren Einstiegspunkt zu MSIL kompiliert wurde, wird dringend davon abgeraten, einen DLL-Einstiegspunkt zu MSIL zu kompilieren.

Weitere Informationen finden Sie unter Initialisierung gemischter Assemblys und Linkertoolfehler LNK1306.

So beheben Sie diesen Fehler

  1. Kompilieren Sie das Modul nicht mit /clr.

  2. Markieren Sie die Einstiegspunktfunktion mit #pragma unmanaged.

Beispiel

Im folgenden Beispiel wird C4747 generiert.

// 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;
};