C# 尝试调用C+;时出现不正确的格式异常+;来自C的dll#
我正在使用C#WPF。C# 尝试调用C+;时出现不正确的格式异常+;来自C的dll#,c#,c++,wpf,language-interoperability,C#,C++,Wpf,Language Interoperability,我正在使用C#WPF。 我有一个C++测试DLL,如下: .h: .cpp文件: extern "C" { __delspec(dllexport) void TestMethod() { MessageBox(0, L"Test", L"Test", MB_ICONINFORMATION); } } C#代码: [DllImport("DllTest.dll", EntryPoint = "TestMethod")] public static ext
我有一个C++测试DLL,如下: .h:
.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
我做错了什么?谢谢
这似乎是
32位/64位的问题。似乎你的C++ DLL和C语言调用程序集是为不同的平台目标构建的。尝试为同一平台(x86或x64)编译这两个函数,然后调用该函数。我有类似于[DllImport(“DllTest.dll”,CallingConvention=CallingConvention.Cdecl)]
。指定呼叫约定有帮助吗?谢谢!!!。。我用另一个问题编辑我的帖子,如果我有一个以上的函数,我需要替换什么[DllImport(“DllTest.dll”,EntryPoint=“TestMethod”)]?@Evyatar best将其作为一个单独的问题发布。我们喜欢一个问题一个问题的格式:)@CompuChip,是的。。我问了一个新问题:P
an attempt was made to load a program with an incorrect format