我正在使用 Visual Studio 2015 在 64 位 Windows 10 上使用 SDL2 用 C++ 编写一个项目。我最近购买了一台新的 Windows 10 笔记本电脑并从 github 克隆了我的项目。我的项目编译正确,但运行时出现以下错误:
应用程序无法正确启动(0xc000007b)。单击“确定”关闭应用程序。
根据我迄今为止的研究,此错误通常是由于加载不兼容的 DLL 引起的,例如64 位版本而不是 32 位版本。到目前为止我发现的建议包括:
- 检查我是否使用 32 位版本的 SDL2 DLL
- 安装/重新安装 x86 版本的 Visual C++ Redistributable for Visual Studio 2015
- Using 依赖步行者排除哪个 DLL 出现故障
我的项目设置为针对 Win32 构建,并且我已确保使用我显式链接的所有 DLL 的 32 位版本(libfreetype-6、libpng16-16、SDL2、SDL2_image、SDL2_mixer 和 SDL2_ttf) 。我已确认我的计算机上安装了 x86 VC++ Redistributable。
最后,我尝试使用 Dependency Walker 来确定可能导致问题的 DLL(尽管我已经阅读过 Dependency Walker 有很多误报的警告)。结果如下:
Dependency Walker static analysis
Dependency Walker profiling results
此后,探查器将冻结并且不再继续。请注意,SDL 组件和 VC 运行时加载时没有错误。
该程序在我的两台旧机器上正确编译和加载,一台运行 32 位 Windows 7,一台运行 64 位 Windows 10。
现在来说说实际问题。我还可以采取哪些其他步骤来调试此崩溃?或者有人从我提供的信息中看出我做错了什么吗?
相关问题:
- 应用程序无法正确启动(0xc000007b)
- Win 7,64位,dll问题
- 在 Visual Studio 2010 中使用 SDL_image,出现错误“应用程序无法正确启动 0xc000007b”
Edit:
正如 rflobao 所建议的,我在 32 位 exe 上使用 64 位版本的 Dependency Walker。这是我的分析运行的新输出:
此时,与之前一样,Dependency Walker 冻结了。我仍然完全迷失了方向,并且觉得自己还没有更接近于确定导致问题的原因。