これは、すべてのC#の達人に当てはまります。私はすでにこれに頭を悩ませてきました、無駄にネット上であらゆる種類のアドバイスを試しました。このアクションは、WindowsMobile5.0で発生しています。
MyDll.dllという名前のDLLがあります。MyDll.hには次のものがあります。
extern "C" __declspec(dllexport) int MyDllFunction(int one, int two);
MyDll.cppでのMyDllFunctionの定義は次のとおりです。
int MyDllFunction(int one, int two)
{
return one + two;
}
C#クラスには、次の宣言が含まれています。
[DllImport("MyDll.dll")]
extern public static int MyDllFunction(int one, int two);
同じクラスで、次の方法でMyDllFunctionを呼び出しています。
int res = MyDllFunction(10, 10);
そして、これは血なまぐさいものが私に「PInvokeDLL'MyDll.dll'が見つかりません」を与え続けるところです。次のように宣言された「GetAsyncKeyState(1)」などのシステムコールで実際にPInvokeを実行できることを確認しました。
[DllImport("coredll.dll")]
protected static extern short GetAsyncKeyState(int vKey);
MyDll.dllは実行可能ファイルと同じフォルダーにあり、変更も成功もせずに/Windowsフォルダーに入れてみました。アドバイスや解決策は大歓迎です。