連結器工具錯誤 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)