当我提供 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 位可执行文件。