Compartir a través de


Advertencia del compilador (nivel 1) C4747

Actualización: noviembre 2007

Mensaje de error

Llamada '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.
Calling managed 'entrypoint': Managed code may not be run under loader lock, including the DLL entrypoint and calls reached from the DLL entrypoint

El compilador encontró un (probable) punto de entrada del archivo DLL compilado en MSIL. Debido a los problemas potenciales de cargar una DLL cuyo punto de entrada se ha compilado en MSIL, está totalmente desaconsejada la compilación de una función de punto de entrada de DLL en MSIL.

Para obtener más información, vea Inicialización de ensamblados mixtos y Error de las herramientas del vinculador 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 el error 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;
};