Condividi tramite


Errore degli strumenti del linker LNK1306

La funzione del punto di ingresso dll non può essere gestita; compilare in modalità nativa

DllMain non può essere compilato in MSIL; deve essere compilato in modalità nativa.

Per risolvere il problema,

  • Compilare il file contenente il punto di ingresso senza /clr.

  • Inserire il punto di ingresso in una #pragma unmanaged sezione.

Per altre informazioni, vedi:

Esempio

L'esempio seguente genera LNK1306.

// LNK1306.cpp
// compile with: /clr /link /dll /entry:NewDllMain
// LNK1306 error expected
#include <windows.h>
int __stdcall NewDllMain( HINSTANCE h, ULONG ulReason, PVOID pvReserved ) {
   return 1;
}

Per risolvere questo problema, non usare l'opzione /clr per compilare questo file o usare una #pragma direttiva per inserire la definizione del punto di ingresso in una sezione non gestita, come illustrato in questo esempio:

// LNK1306fix.cpp
// compile with: /clr /link /dll /entry:NewDllMain
#include <windows.h>
#pragma managed(push, off)
int __stdcall NewDllMain( HINSTANCE h, ULONG ulReason, PVOID pvReserved ) {
   return 1;
}
#pragma managed(pop)