这是所有C#专家.我已经在这个问题上敲了一段时间,在网上尝试各种建议但没有用.该操作发生在Windows Mobile 5.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);
这就是血腥的事情让我"无法找到PInvoke DLL'MyDll.dll'"的地方.我已经验证我可以在系统调用上实际执行PInvoke,例如"GetAsyncKeyState(1)",声明为:
[DllImport("coredll.dll")] protected static extern short GetAsyncKeyState(int vKey);
MyDll.dll与可执行文件位于同一文件夹中,我也尝试将其放入/ Windows文件夹中,没有任何更改也没有成功.任何建议或解决方案都非常感谢.