次の方法で共有


コンパイラの警告 (レベル 1) C4747

マネージ 'entrypoint' を呼び出します: マネージ コードは、DLL エントリポイントおよび DLL エントリポイントから到達した呼び出しを含むローダー ロック下では実行できません

DLL エントリ ポイントが MSIL にコンパイルされている可能性があることがコンパイラで検出されました。エントリ ポイントが 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;
};