Linkertoolfehler LNK1306
DLL-Einstiegspunktfunktion kann nicht verwaltet werden; Kompilieren auf systemeigene
DllMain
kann nicht in MSIL kompiliert werden; sie muss auf systemeigenem Computer kompiliert werden.
Lösung:
Kompilieren Sie die Datei, die den Einstiegspunkt ohne /clr enthält.
Setzen Sie den Einstiegspunkt in einen
#pragma unmanaged
Abschnitt.
Weitere Informationen finden Sie unter:
Beispiel
Im folgenden Beispiel werden LNK1306 generiert.
// 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;
}
Verwenden Sie zum Beheben dieses Problems nicht die Option "/clr", um diese Datei zu kompilieren, oder verwenden Sie eine #pragma
Direktive, um die Einstiegspunktdefinition in einen nicht verwalteten Abschnitt einzufügen, wie in diesem Beispiel gezeigt:
// 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)