В моем коде я могу загрузить «MessageBoxA» из user32.dll и использовать его, но если я попытаюсь загрузить и использовать функцию из своей DLL, я получаю сбой.C#: проблема с загрузкой C++ DLL
Мой C# код:
[DllImport("SimpleDLL.dll")]
static extern int mymean(int a, int b, int c);
[DllImport("user32.dll")]
static extern int MessageBoxA(int hWnd,
string msg,
string caption,
int type);
[...]
это работает
MessageBoxA(0, "Hello, World!", "This is called from a C# app!", 0);
это врезается
int mean = mymean(12, 14, 16);
И мой C++ DLL код: SimpleDLL .cpp:
extern "C" _declspec(dllexport) int mymean(int x, int y, int z)
{
return (x + y + z)/3;
}
SimpleDLL.def:
LIBRARY "SimpleDLL"
mymean
SimpleDLL.dll копируется в ту же папку, что и .exe я компилировать из C# кода. Используя walker, я вижу, что все необходимые DLL для загрузки SimpleDLL.dll присутствуют.
Какое исключение вы видите? – jason
Определите «сбои». Как вы заявили, вы не дали никакой информации, которая поможет нам решить вашу проблему. «Сбои» могут означать любую тысячу вещей, в том числе «мой компьютер переместится через всю комнату и окунается в телевизор», что, вероятно, маловероятно. Как насчет его сужения? –