編譯器警告 (層級 1) C4747

呼叫 Managed 'entrypoint':Managed 程式碼可能無法在載入器鎖定下執行,包括 DLL 進入點和從 DLL 進入點到達的呼叫

編譯器發現已編譯為 MSIL 的 DLL 進入點。 由於載入已將進入點編譯為 MSIL 的 DLL 時發生潛在問題,因此強烈建議您不要將 DLL 進入點函式編譯至 MSIL。

如需詳細資訊,請參閱 混合元件 連結器工具的初始化錯誤LNK1306

更正這個錯誤

  1. 請勿使用 /clr 編譯模組。

  2. 使用 標記進入點函式 #pragma unmanaged

範例

下列範例會產生 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;
};