Error de las herramientas del vinculador LNK1306
la función de punto de entrada de archivo DLL no se puede administrar; compile en código nativo
DllMain
no se puede compilar en MSIL; se debe compilar en código nativo.
Para resolver este problema,
Compile el archivo que contiene el punto de entrada sin /clr.
Coloque el punto de entrada en una sección
#pragma unmanaged
.
Para más información, vea:
Ejemplo
El ejemplo siguiente genera el error 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;
}
Para corregir este problema, no use la opción /clr para compilar este archivo, o bien use una directiva #pragma
para colocar la definición del punto de entrada en una sección no administrada, tal como se muestra en este ejemplo:
// 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)