我正在从 64 位系统上的 32 位非托管 DLL 调用函数。我得到的是:
BadImageFormatException:试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)
起初,我将我的项目设置为 Any CPU 平台,因此我将它们都更改为 x86,但仍然出现此错误。这真的是我所知道的唯一解决方法。
DLL 没有损坏或任何东西,因为我可以将它们与其他程序一起使用(我没有源代码)。我想也许它没有找到依赖关系,但我检查了一下,它们都在那里。DllNotFoundException另外,在那种情况下它不会抛出一个吗?
DllNotFoundException
我还可以做些什么?在您说“改用 64 位非托管 DLL”之前,让我指出没有。;)
不知何故,配置管理器中的 构建 复选框已取消选中我的可执行文件,因此它仍在使用旧的 Any CPU 构建运行。修复该问题后,Visual Studio 抱怨它无法调试程序集,但通过重新启动已解决。