Partilhar via


Aviso do compilador (nível 1) C4747

Chamando “entrypoint gerenciado”: O código gerenciado não pode ser executado sob o bloqueio de carregador, incluindo o entrypoint da DLL e chama alcançado de ponto de entrada da DLL

O compilador encontrou o ponto de entrada (provável) da DLL de compilado a MSIL. Devido a problemas potenciais com carregar uma DLL cujo ponto de entrada é compilado a MSIL, você não é recomendado de criar uma função do ponto de entrada da DLL a MSIL.

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

Para corrigir este erro

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

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

Exemplo

O exemplo a seguir produz 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;
};