1

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

4

2 回答 2

2

这是STATUS_INVALID_IMAGE_FORMAT,您可以在 ntstatus.h SDK 头文件中找到这些错误代码。

它肯定与构建 x64 代码密切相关。只要您的程序依赖于 32 位代码,尤其是在 DLL 中,您就会得到这个状态码。您的程序在启动时尝试加载 DLL 时将无法启动,64 位进程不能包含任何 32 位代码。或者相反,一个 32 位进程试图加载一个 64 位 DLL。

查看程序的所有依赖项,尤其是您链接的导入库。一切都必须针对 x64 构建。您可以使用 SysInternals 的 ProcMon 实用程序来查找无法加载的 DLL,这在这是一个 DLL Hell 问题时很有用。

于 2013-01-06T16:30:33.063 回答
1

只是对上述正确答案的补充:还检查您的 .manifest-files (resp.#pragma comment(linker,"/manifestdependency...) 并确保您有 32 位的 processorArchitecture='x86' 和 processorArchitecture= 'amd64' 用于 x64 代码。

于 2013-01-21T13:45:08.557 回答