我创建了一个控制台应用程序。在那个应用程序中,我引用了一个x86编译的dll。在项目设置中,我将目标平台更改为x64。
当我运行应用程序(F5)时,它会抛出BadImageFormatException。没关系,但是如果我只是构建(构建成功)并将.exe文件复制到其他64位操作系统并运行exe,它运行正常,而不是在VS中运行应用程序。
为什么它没有在另一台机器上失败。是什么原因?
我的开发机器是64位Windows 7,VS2010是32位,另一台机器是64位Windows服务器2008 R2。
答案 0 :(得分:0)
因为32位dll与64位CPU兼容,所以另一方面,64位dll与32位CPU不兼容。
当您调试应用程序时,调试器期望应用程序为64位,这就是它失败的原因。
尝试在不调试CTRL + F5的情况下运行它,它会运行得很好。