Linker Tools Error LNK1306
DLL entry point function cannot be managed; compile to native
DllMain
cannot be compiled to MSIL; it must be compiled to native.
To resolve this issue,
Compile the file that contains the entry point without /clr.
Put the entry point in a
#pragma unmanaged
section.
For more information, see:
Example
The following sample generates 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;
}
To fix this issue, do not use the /clr option to compile this file, or use a #pragma
directive to put the entry point definition in an unmanaged section as shown in this example:
// 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)