Я использую C # WPF.
У меня есть C ++ test dll следующим образом:
.час:
extern "C" __delspec(dllexport) void TestMethod();
.файл cpp:
extern "C"{
__delspec(dllexport) void TestMethod()
{
MessageBox(0, L"Test", L"Test", MB_ICONINFORMATION);
}
}
Код C #:
[DllImport("DllTest.dll", EntryPoint = "TestMethod")]
public static extern void TestMethod();
И когда я пытаюсь позвонить в TestMethod, я получил исключение:
an attempt was made to load a program with an incorrect format
Что я делаю не так?
Спасибо!
Кажется, это 32bit/ 64 bit
проблема. Похоже, ваша вызывающая сборка C ++ dll и C # создана для разных целей платформы. Попробуйте скомпилировать оба для одной и той же платформы (x86 или x64) и затем вызвать функцию.
Других решений пока нет …