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: 300
        
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