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
No compile el módulo con /clr.
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;
};