コンパイラの警告 (レベル 1) C4747
マネージド 'entrypoint' の呼び出し: マネージド コードは、DLL エントリポイントや、DLL エントリポイントから到達した呼び出しを含むローダー ロック下では実行できません
コンパイラは、MSIL にコンパイルされた (可能性のある) DLL エントリ ポイントを検出しました。 エントリ ポイントが MSIL にコンパイルされている DLL の読み込みに問題が発生する可能性があるため、DLL エントリ ポイント関数を MSIL にコンパイルすることは推奨されません。
詳細については、「混在アセンブリの初期化」をおよび「リンカ ツール エラー LNK1306」を参照してください。
このエラーを解決するには
/clr を使用してモジュールをコンパイルしないでください。
エントリ ポイント関数を
#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;
};