Partilhar via


Aviso do compilador (nível 1) C4747

Chamada a 'entrypoint' gerenciado: Código gerenciado não deve ser executado sob bloqueio do carregador, incluindo o ponto de entrada de DLL e chamadas acessíveis do ponto de entrada de DLL

O compilador encontrou um ponto de entrada de DLL (provável) compilado para MSIL. Devido a problemas em potencial com o carregamento de uma DLL cujo ponto de entrada foi compilado para o MSIL, é fortemente desaconselhável compilar uma função de ponto de entrada de DLL para MSIL.

Para obter mais informações, consulte Inicialização de assemblies mistos e Erro das ferramentas do vinculador LNK1306.

Para corrigir este erro

  1. Não compile o módulo com /clr.

  2. Marque a função de ponto de entrada com #pragma unmanaged.

Exemplo

A seguinte amostra gera C4747.

// C4747.cpp
// compile with: /clr /c /W1
// C4747 expected
#include <windows.h>

// Uncomment the following line to resolve.
// #pragma unmanaged

BOOL WINAPI DllMain(HANDLE hInstance, ULONG Command, LPVOID Reserved) {
   return TRUE;
};