Share via


連結器工具錯誤 LNK1306

無法管理 DLL 進入點函式;編譯為原生

DllMain 無法編譯為 MSIL;它必須編譯為原生。

若要解決此問題,

  • 編譯包含不含 /clr 之進入點的檔案。

  • 將進入點放在 #pragma unmanaged 區段中。

如需詳細資訊,請參閱

範例

下列範例會產生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;
}

若要修正此問題,請勿使用 /clr 選項來編譯此檔案,或使用 #pragma 指示詞將進入點定義放在 Unmanaged 區段中,如下列範例所示:

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