Condividi tramite


Avviso del compilatore (livello 1) C4747

Aggiornamento: novembre 2007

Messaggio di errore

Chiamata a 'punto di ingresso' non gestito: il codice gestito potrebbe non essere eseguito in condizioni di blocco del caricatore, inclusi il punto di ingresso delle DLL e le chiamate raggiunte dal punto di ingresso delle DLL
Calling managed 'entrypoint': Managed code may not be run under loader lock, including the DLL entrypoint and calls reached from the DLL entrypoint

Il compilatore ha rilevato un (probabile) punto di ingresso delle DLL compilato in MSIL (Microsoft Intermediate Language). A causa di potenziali problemi con il caricamento di una DLL il cui punto di ingresso è stato compilato in MSIL, evitare di compilare una funzione del punto di ingresso della DLL in MSIL.

Per ulteriori informazioni, vedere Inizializzazione di assembly misti e Errore degli strumenti del linker LNK1306.

Per correggere l'errore

  1. Non compilare il modulo con /clr.

  2. Contrassegnare la funzione del punto di ingresso con #pragma unmanaged.

Esempio

Nell'esempio seguente viene generato l'errore 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;
};