我有一个客户端/服务器应用程序,我一直在一台 PC 上开发它。现在需要两个串口,所以我向朋友借了一台PC。
当我构建应用程序并尝试运行或调试它(无论是在 Delphi IDE 中还是从 Windows 文件管理器中)时,出现错误“应用程序无法正确启动 (0xc000007b)”。
谷歌搜索并没有带来太多结果,但似乎表明这不是 Delphi 特有的,并且发生在其他应用程序中。这似乎是由从 64 位应用程序调用 32 位 DLL 引起的,反之亦然。
- 两台电脑都是 Windows 7, 64 位
- 两者都有 Delphi Xe2 入门版,只能处理 32 位
- 该应用程序在我的电脑上运行良好,但在我朋友的电脑上运行不佳
- 其他 Delphi 应用程序在两台 PC 上都运行良好
谁能给我一个关于如何追踪这个问题的提示?
通常我们会得到0xC000007B
错误代码(这意味着STATUS_INVALID_IMAGE_FORMAT
), if:
- 如果 32 位应用程序尝试加载 64 位 DLL。
- 或者,如果 64 位应用程序尝试加载 32 位 DLL。
- 或者,如果 64 位应用程序尝试在 32 位 Windows 上运行。
要真正了解,我建议使用以下命令测试您的应用程序及其依赖项之间是否存在问题依赖步行者 http://www.dependencywalker.com/
Note您所需要做的就是使用上述工具打开您的应用程序,问题会在屏幕底部显示为红色日志条目。
(至少在撰写本文时,即 2022 年)
另外,请确保运行正确版本的 Dependency Walker,例如,x86 版本在打开 x64 二进制文件时将显示不正确的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)