Visual c++ MSVC 2010-在x64中生成时出现错误0xc000007b

Visual c++ MSVC 2010-在x64中生成时出现错误0xc000007b,visual-c++,Visual C++,标题非常简单-在x64中构建时,我根本无法运行任何东西,我会收到一个包含此错误代码的消息框。您知道这里可能有什么问题吗?这是状态\u无效\u图像\u格式,您可以在ntstatus.h SDK头文件中找到这些错误代码 它当然与构建x64代码密切相关。每当您的程序依赖于32位代码时,尤其是在DLL中,您将获得此状态代码。程序在启动时尝试加载DLL时将无法启动,64位进程不能包含任何32位代码。或者反过来说,32位进程试图加载64位DLL 查看程序的所有依赖项,尤其是链接的导入库。一切都必须以x64为

标题非常简单-在x64中构建时,我根本无法运行任何东西,我会收到一个包含此错误代码的消息框。您知道这里可能有什么问题吗?

这是
状态\u无效\u图像\u格式
,您可以在ntstatus.h SDK头文件中找到这些错误代码

它当然与构建x64代码密切相关。每当您的程序依赖于32位代码时,尤其是在DLL中,您将获得此状态代码。程序在启动时尝试加载DLL时将无法启动,64位进程不能包含任何32位代码。或者反过来说,32位进程试图加载64位DLL


查看程序的所有依赖项,尤其是链接的导入库。一切都必须以x64为目标。您可以使用SysInternals的ProcMon实用程序来查找无法加载的DLL,这在出现DLL地狱问题时非常有用。

这只是对上面正确答案的补充:还要检查.manifest文件(对应的pragma注释(链接器,/manifestdependency…)并确保32位代码使用processorArchitecture='x86',x64代码使用processorArchitecture='amd64'。

感谢您的指导-我有一个版本的msvcr100d.dll与64位不兼容。发布后,我意识到exe的发布版本运行良好。我用正确的文件替换了该文件ing现在很好。链接到它时提到了Dependency Walker,它帮助我找到了引用的64位库。事实证明,这只发生在调试模式下,所以我能够确定我的一个dll是32位的。一旦我替换了它,一切都很好。根据MSDN
processorArchitecture
应该是ia64 for x64代码.