How do I solve the .NET CF exception "Can't find PInvoke DLL"?
Posted
by Ignas Limanauskas
on Stack Overflow
See other posts from Stack Overflow
or by Ignas Limanauskas
Published on 2008-11-26T07:14:59Z
Indexed on
2010/06/17
10:33 UTC
Read the original article
Hit count: 253
This is to all the C# gurus. I have been banging my head on this for some time already, tried all kinds of advice on the net with no avail. The action is happening in Windows Mobile 5.0.
I have a DLL named MyDll.dll. In the MyDll.h I have:
extern "C" __declspec(dllexport) int MyDllFunction(int one, int two);
The definition of MyDllFunction in MyDll.cpp is:
int MyDllFunction(int one, int two)
{
return one + two;
}
The C# class contains the following declaration:
[DllImport("MyDll.dll")]
extern public static int MyDllFunction(int one, int two);
In the same class I am calling MyDllFunction the following way:
int res = MyDllFunction(10, 10);
And this is where the bloody thing keeps giving me "Can't find PInvoke DLL 'MyDll.dll'". I have verified that I can actually do the PInvoke on system calls, such as "GetAsyncKeyState(1)", declared as:
[DllImport("coredll.dll")]
protected static extern short GetAsyncKeyState(int vKey);
The MyDll.dll is in the same folder as the executable, and I have also tried putting it into the /Windows folder with no changes nor success. Any advice or solutions are greatly appreciated.
© Stack Overflow or respective owner