Bagikan melalui


LNK1306 Kesalahan Alat Linker

Fungsi titik masuk DLL tidak dapat dikelola; kompilasi ke asli

DllMain tidak dapat dikompilasi ke MSIL; itu harus dikompilasi ke asli.

Untuk mengatasi masalah ini,

  • Kompilasi file yang berisi titik masuk tanpa /clr.

  • Letakkan titik masuk di bagian #pragma unmanaged .

Untuk informasi selengkapnya, lihat:

Contoh

Sampel berikut menghasilkan 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;
}

Untuk memperbaiki masalah ini, jangan gunakan opsi /clr untuk mengkompilasi file ini, atau gunakan #pragma direktif untuk menempatkan definisi titik masuk di bagian yang tidak dikelola seperti yang ditunjukkan dalam contoh ini:

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