アンマネージ dll (c++ および WinAPI を使用) を作成していますが、いくつかの C# メソッドを使用したいので、C++/CLI を使用してラッパーを作成しました。
しかし、問題は次のとおりです。管理されていない dll が「注入」され (LoadLibrary)、Wrapper 関数を呼び出す方法がわからないまま、ここで立ち往生しています。
アンマネージ コード:
#include <Windows.h>
//the function I want to call
__declspec(dllexport) void SimpleTest(int *p);
extern "C" __declspec(dllexport) void MyEntryPoint()
{
int* test;
SimpleTest(test);
}
BOOL WINAPI DllMain(/*DllMain parameters*/)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
MyEntryPoint();
break;
}
return TRUE;
}
ラッパー (C++/CLI):
__declspec(dllexport) void SimpleTest(int* p)
{
*p = 1;
}
ここで何が起こっているのかわかりません。.NET 環境がロードされていませんか? Wrapper DLL がロードされていませんか? (モジュールをループしましたが、ラッパーはありませんでした)。
CLR を手動で初期化する必要がありますか?
ローダーロックについて読みましたが、ここでの問題かどうかはわかりません。