C4747 de aviso (nível 1) do compilador

Chamada gerenciada 'entrypoint': Código gerenciado não pode ser executado sob o bloqueio do carregador, incluindo o ponto de entrada DLL e chamadas alcançadas a partir do ponto de entrada DLL

O compilador encontrado um ponto de entrada (provável) DLL compilado para MSIL. Devido aos possíveis problemas com a carregar uma DLL cujo ponto de entrada foi compilado para MSIL, são altamente desencorajado compilação de uma função de ponto de entrada DLL para MSIL.

For more information, see Inicialização de Assemblies mistos and LNK1306 de erro de ferramentas do vinculador.

To correct this error

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

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

Exemplo

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