Dela via


Fel LNK1306 för Länkverktyg

Det går inte att hantera DLL-startpunktsfunktionen; kompilera till maskinkod

Anmärkningar

DllMain kan inte kompileras till MSIL; det måste kompileras till inbyggd.

För att lösa detta problem

  • Kompilera filen som innehåller startpunkten utan /clr.

  • Placera startpunkten i ett #pragma unmanaged avsnitt.

Mer information finns i:

Example

I följande exempel genereras 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;
}

Åtgärda problemet genom att inte använda alternativet /clr för att kompilera den här filen eller använda ett #pragma direktiv för att placera startpunktsdefinitionen i ett ohanterat avsnitt som du ser i det här exemplet:

// 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)