链接器工具错误 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 指令将入口点定义放入非托管部分,如以下示例所示:

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