Compartir a través de


Advertencia del compilador (nivel 1) C4747

Llamada a "entrypoint" administrado: no se puede ejecutar código administrado bajo el bloqueo del cargador, incluido el punto de entrada del archivo DLL y las llamadas alcanzadas desde dicho punto

El compilador encontró un punto de entrada de DLL (probable) compilado en MSIL. Debido a posibles problemas con la carga de un archivo DLL cuyo punto de entrada se ha compilado en MSIL, se desaconseja totalmente compilar una función de punto de entrada de DLL en MSIL.

Para más información, consulte Inicialización de ensamblados mixtos y Error de las herramientas del enlazador LNK1306.

Para corregir este error

  1. No compile el módulo con /clr.

  2. Marque la función de punto de entrada con #pragma unmanaged.

Ejemplo

El ejemplo siguiente genera la advertencia 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;
};