CLion生成的dll,C#无法调用



如图这是clion的代码,很简单也编译成功了,正常的clion是可以调用生成的dll的,但是C#调用就报错System.BadImageFormatException : 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B),网上大多数资料都说是位数不正确但是我clion用的的确是

如图64位的,请问这还有可能是什么错误导致的?

这是调用代码
CLion生成的dll,C#无法调用





关注
// 这是clion生成dll的代码#include <
iostream>
extern "
C"
{__declspec(dllexport) void hello() {std::cout <
<
"
Hello from DLL!"
<
<
std::endl;
}}// 这是C#调用dll的代码using System;
using System.Runtime.InteropServices;
class Program{[DllImport("
yourdllname.dll"
, CallingConvention = CallingConvention.Cdecl)]public static extern void hello();
static void Main(string[] args){hello();
}}如果您的代码配置和代码本身都没有问题,但是仍然出现BadImageFormatException,可能是由于dll依赖项引起的问题。您可以使用工具如Dependency Walker来检查dll文件的依赖项,并确保它们和您的系统和项目配置相匹配。另外,还可以尝试使用Any CPU编译选项重新编译您的C#项目,看看是否可以解决问题。