Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1) C4747

Wywoływanie zarządzanego punktu wejścia: Kod zarządzany może nie być uruchamiany w ramach blokady modułu ładującego, w tym punktu wejścia biblioteki DLL i wywołań pochodzących z punktu wejścia biblioteki DLL

Kompilator znalazł (prawdopodobny) punkt wejścia biblioteki DLL skompilowany do biblioteki MSIL. Ze względu na potencjalne problemy z ładowaniem biblioteki DLL, której punkt wejścia został skompilowany do MSIL, zdecydowanie odradza się kompilowanie funkcji punktu wejścia biblioteki DLL do MSIL.

Aby uzyskać więcej informacji, zobacz Inicjowanie zestawów mieszanych i narzędzi konsolidatora LNK1306.

Aby poprawić ten błąd

  1. Nie kompiluj modułu za pomocą polecenia /clr.

  2. Oznacz funkcję punktu wejścia za pomocą #pragma unmanagedpolecenia .

Przykład

Poniższy przykład generuje kod 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;
};