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



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

类型 : System.BadImageFormatException, mscorlib, Version=4.0.0.0, Culture=Neutral, PublicKeyToken=xxxxxxx 消息:无法加载文件或程序集"MyDLLName,版本=1.0.0.0,区域性=中性,公钥令牌=空"或其依赖项之一。尝试加载格式不正确的程序。

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

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

最新更新