0

我创建了一个控制台应用程序。在那个应用程序中,我引用了一个 x86 编译的 dll。在项目设置中,我将目标平台更改为 x64。

当我运行应用程序 (F5) 时,它会抛出 BadImageFormatException。没关系,但是如果我只是构建(构建成功)并将 .exe 文件复制到其他一些 64 位操作系统机器并运行运行正常的 exe,而不是在 VS 中运行应用程序。

为什么它在另一台机器上没有失败。是什么原因?

我的开发机器是64bit windows 7,VS2010是32bit,另一台机器是64bit windows server 2008 R2。

4

1 回答 1

0

因为 32 位 dll 与 64 位 CPU 兼容,所以另一方面,64 位 dll 与 32 位 CPU 不兼容。

当您调试应用程序时,调试器期望应用程序是 64 位的,这就是它失败的原因。

尝试在不调试 CTRL+F5 的情况下运行它,它会运行得很好。

于 2013-04-02T09:24:50.960 回答