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 回答