我有一个客户端/服务器应用程序,我一直在一台PC上开发.现在它需要两个串口,所以我从朋友那里借了一台电脑.
当我构建我的应用程序并尝试运行或调试它时(无论是在Delphi IDE中还是从Windows文件管理器中),它出现错误"应用程序无法正确启动(0xc000007b)".
谷歌搜索没有带来多少,但似乎表明这不是特定于Delphi的其他应用程序.它似乎是由64位应用程序调用32位DLL引起的,反之亦然.
任何人都可以给我一个提示,如何跟踪这个?
我正在使用Visual Studio 2015在64位Windows 10上使用SDL2编写C++项目.我最近购买了一台新的Windows 10笔记本电脑并从github克隆了我的项目.我的项目编译正确,但运行时出现以下错误:
应用程序无法正确启动(0xc000007b).单击"确定"关闭应用程序.
根据我目前的研究,这个错误通常是由加载不兼容的DLL引起的,例如64位版本而不是32位版本.到目前为止我发现的建议包括:
我的项目设置为Win32构建,我确保我使用的是我明确链接的所有DLL的32位版本(libfreetype-6,libpng16-16,SDL2,SDL2_image,SDL2_mixer和SDL2_ttf) .我已确认x86 VC++ Redistributable已安装在我的机器上.
最后,我尝试使用Dependency Walker来确定可能导致问题的DLL(虽然我已经读到了Dependency Walker有很多误报的警告).这些是结果:
在那之后,探查器冻结并且永远不会继续.请注意,SDL组件和VC运行时正在加载而没有错误.
该程序在我的两台旧机器上正确编译和加载,一台运行32位Windows 7,一台运行64位Windows 10.
现在是实际问题.我可以采取哪些其他步骤来调试此崩溃?或者有人从我提供的信息中看到我做错了什么?
相关问题:
正如rflobao建议的那样,我在32位exe上使用了64位版本的Dependency Walker.以下是我的分析运行的新输出:
此时,和以前一样,Dependency Walker冻结了.我仍然完全迷失了,并且不觉得我更接近能够确定导致问题的原因.