2

C# WPF を使用しています。
次のような C++ テスト dll があります:
.h:

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

私が間違っているのは何ですか?
ありがとう!


4

1 に答える 1

7

これは32bit/ 64 bit問題があるようです。C++ dll と C# 呼び出しアセンブリは、異なるプラットフォーム ターゲット用にビルドされているようです。同じプラットフォーム (x86 または x64) 用に両方をコンパイルしてから、関数を呼び出してみてください。

于 2016-04-13T08:40:38.853 に答える