小编典典

应用程序无法正确启动 (0xc000007b)

all

我有一个客户端/服务器应用程序,我一直在单台 PC 上开发它。现在它需要两个串口,所以我从朋友那里借了一台PC。

当我构建我的应用程序并尝试运行或调试它(无论是在 Delphi IDE 中还是从 Windows
文件管理器中)时,它会出错“应用程序无法正确启动(0xc000007b)”。

谷歌搜索并没有带来太多,但似乎表明这不是 Delphi 特有的,并且在其他应用程序中也会发生。这似乎是由从 64 位应用程序调用 32 位 DLL
引起的,反之亦然。

  • 两台电脑都是 Windows 7、64 位
  • 两者都有只能处理 32 位的 Delphi Xe2 入门版
  • 该应用程序在我的电脑上运行良好,但在我朋友的电脑上却不行
  • 其他 Delphi 应用程序在两台 PC 上运行良好

谁能给我一个关于如何追踪这个的提示?


阅读 99

收藏
2022-08-20

共1个答案

小编典典

通常我们会得到0xC000007B错误代码(这意味着STATUS_INVALID_IMAGE_FORMAT),如果:

  • 如果 32 位应用程序尝试加载 64 位 DLL。
  • 或者,如果 64 位应用程序尝试加载 32 位 DLL。

要真正了解,我建议使用dependency
walker
测试您的应用程序及其依赖项之间是否存在问题

请注意 ,您需要做的就是使用上述工具打开您的应用程序,问题会在屏幕底部显示为红色日志条目。

(至少,在撰写本文时,即 2022 年)

另外,请确保您运行正确版本的 Dependency Walker,例如,x86 版本在打开 x64 二进制文件时会显示不正确的结果。

2022-08-20