這是所有的C#大師。我已經有一段時間了,我已經在這個問題上激怒了,在網上嘗試了各種各樣的建議,但沒有成功。該行動發生在Windows Mobile 5.0中。如何解決.NET CF異常「無法找到PInvoke DLL」?
我有一個名爲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);
這就是血腥的事情不斷給我的地方「找不到PInvoke DLL'MyDll.dll'」。我已驗證我其實可以做的PInvoke系統調用,如「GetAsyncKeyState(1)」,聲明如下:
[DllImport("coredll.dll")]
protected static extern short GetAsyncKeyState(int vKey);
的MYDLL.DLL是在同一文件夾中的可執行文件,並且我也有嘗試將其放入/ Windows文件夾中,不做任何更改或成功。任何建議或解決方案,不勝感激。
請確保您有足夠的空閒虛擬內存,因爲P/Invoke導入可能會失敗。 – arul 2008-11-26 07:26:12
您是否在項目中添加了dll作爲參考?如果你這樣做,那麼你不需要手動複製文件。如果問題依然存在,那很可能是由於dll文件沒有正確構建(也許是不同的平臺)。 – kgiannakakis 2008-11-26 07:22:31
兩個項目都在相同的解決方案中,並且它們一起部署,無需手動上傳。 – 2008-11-26 10:05:43