尝试从C#调用C++ DLL时格式不正确异常

Evy*_*tar 2 c# c++ wpf language-interoperability

我正在使用C#WPF.
我有一个C++测试dll如下:
.h:

extern "C" __delspec(dllexport) void TestMethod();
Run Code Online (Sandbox Code Playgroud)

.cpp文件:

extern "C"
{
    __delspec(dllexport) void TestMethod()
    {
        MessageBox(0, L"Test", L"Test", MB_ICONINFORMATION);
    }
}
Run Code Online (Sandbox Code Playgroud)

C#代码:

[DllImport("DllTest.dll", EntryPoint = "TestMethod")]
public static extern void TestMethod();
Run Code Online (Sandbox Code Playgroud)

当我试图调用TestMethod时,我得到了异常:

an attempt was made to load a program with an incorrect format
Run Code Online (Sandbox Code Playgroud)

我做错了什么?
谢谢!


Nit*_*tin 7

这似乎是个32bit/ 64 bit问题.好像你的C++ DLL和C#调用程序集是为不同的平台目标构建的.尝试为同一平台(x86或x64)编译两者,然后调用该函数.