Это для всех гуру C #. Я уже давно бьюсь об этом, пробовал всевозможные советы в сети, но безрезультатно. Действие происходит в Windows Mobile 5.0.
У меня есть DLL с именем MyDll.dll. В MyDll.h у меня есть:
extern "C" __declspec(dllexport) int MyDllFunction(int one, int two);
Определение MyDllFunction в MyDll.cpp:
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 без изменений и безуспешно. Любые советы или решения приветствуются.