Sdílet prostřednictvím


Chyba linkerů LNK1306

Funkci vstupního bodu knihovny DLL nelze spravovat; zkompilovat do nativního

DllMain nelze kompilovat do knihovny MSIL; musí být zkompilován do nativního prostředí.

Řešení tohoto problému:

  • Zkompilujte soubor, který obsahuje vstupní bod bez /clr.

  • Vložte vstupní bod do oddílu #pragma unmanaged .

Další informace naleznete v tématu:

Příklad

Následující ukázka vygeneruje 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;
}

Pokud chcete tento problém vyřešit, nepoužívejte možnost /clr ke kompilaci tohoto souboru nebo použijte direktivu #pragma k vložení definice vstupního bodu do nespravované části, jak je znázorněno v tomto příkladu:

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