64位进程中的AnyCPU C#DLL无法引用64位C ++ DLL(提供错误:无法加载文件或程序集)

时间:2018-08-21 11:47:06

标签: c# c++

当我提供64位C ++ dll作为对C#项目的引用时,它将生成AnyCPU C#dll。我能够生成C#dll,但是当我启动应用程序时出现错误消息,

类型:System.BadImageFormatException,mscorlib,版本= 4.0.0.0,区域性=中性,PublicKeyToken = xxxxxxxx 消息:无法加载文件或程序集'MyDLLName,版本= 1.0.0.0,区域性=中性,PublicKeyToken =空'或其依赖项之一。试图加载格式错误的程序。

由于C#dll无法获取C ++ dll。那么,如何解决此错误?

1 个答案:

答案 0 :(得分:1)

您正在尝试从32位进程中加载​​64位库。您的C#dll可以是AnyCPU,但是执行程序必须是64位才能加载C ++ dll。在项目设置中,检查是否设置了“ prefer 32 bit”标志,然后取消选中它-或只是构建64位可执行文件。