Freigeben über


Compilerwarnung (Ebene 1) C4747

Aufruf von "entrypoint" (verwaltet): Verwalteter Code darf nicht unter der Loadersperre, einschließlich des DLL-Einstiegspunkts und Aufrufen, die vom DLL-Einstiegspunkt eingehen, ausgeführt werden.

Der Compiler hat einen (wahrscheinlichen) DLL-Einstiegspunkt gefunden, der zu MSIL kompiliert wurde. Aufgrund potenzieller Probleme beim Laden einer DLL, deren Einstiegspunkt in MSIL kompiliert wurde, wird dringend davon abgeraten, eine DLL-Einstiegspunktfunktion in MSIL zu kompilieren.

Weitere Informationen finden Sie unter Initialisierung gemischter Assemblys und Linker tools Error 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;
};