Partilhar via


Erro de ferramentas de vinculação LNK1306

A função de ponto de entrada da DLL não pode ser gerida; compilar para o nativo

Observações

DllMain não pode ser compilado para MSIL; deve ser compilado para código nativo.

Para resolver esse problema,

  • Compile o arquivo que contém o ponto de entrada sem /clr.

  • Coloque o ponto de entrada numa #pragma unmanaged secção.

Para obter mais informações, consulte:

Example

O exemplo a seguir gera 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 corrigir esse problema, não use a opção /clr para compilar esse arquivo ou use uma #pragma diretiva para colocar a definição de ponto de entrada em uma seção não gerenciada, como mostrado neste exemplo:

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