如何解决.NET CF异常"无法找到PInvoke DLL"?

Ign*_*kas 5 .net c# pinvoke windows-mobile

这是所有C#专家.我已经在这个问题上敲了一段时间,在网上尝试各种建议但没有用.该操作发生在Windows Mobile 5.0中.

我有一个名为MyDll.dll的DLL.在MyDll.h我有:

extern "C" __declspec(dllexport) int MyDllFunction(int one, int two);
Run Code Online (Sandbox Code Playgroud)

MyDll.cpp中MyDllFunction的定义是:

int MyDllFunction(int one, int two)
{
    return one + two;
}
Run Code Online (Sandbox Code Playgroud)

C#类包含以下声明:

[DllImport("MyDll.dll")]
extern public static int MyDllFunction(int one, int two);
Run Code Online (Sandbox Code Playgroud)

在同一个类中,我通过以下方式调用MyDllFunction:

int res = MyDllFunction(10, 10);
Run Code Online (Sandbox Code Playgroud)

这就是血腥的事情让我"无法找到PInvoke DLL'MyDll.dll'"的地方.我已经验证我可以在系统调用上实际执行PInvoke,例如"GetAsyncKeyState(1)",声明为:

    [DllImport("coredll.dll")]
    protected static extern short GetAsyncKeyState(int vKey);
Run Code Online (Sandbox Code Playgroud)

MyDll.dll与可执行文件位于同一文件夹中,我也尝试将其放入/ Windows文件夹中,没有任何更改也没有成功.任何建议或解决方案都非常感谢.

Mic*_*sch 2

也许这看起来是一个显而易见的需要检查的事情,但是您是否为正确的 CPU 架构编译本机 DLL?IIRC,Windows Mobile 运行在多个CPU 架构上。