gpt4 book ai didi

c++ - 在Win10上用VS2015编译的C++ SDL2程序调试加载时间错误

转载 作者:可可西里 更新时间:2023-11-01 15:56:34 27 4
gpt4 key购买 nike

我正在使用 Visual Studio 2015 在 64 位 Windows 10 上使用 SDL2 在 C++ 中编写一个项目。我最近购买了一台新的 Windows 10 笔记本电脑并从 github 克隆了我的项目。我的项目编译正确,但在运行时出现以下错误:

The application was unable to start correctly (0xc000007b). Click OK to close the application.

根据我目前的研究,这个错误通常是由加载不兼容的 DLL 引起的,例如64 位版本而不是 32 位版本。到目前为止我发现的建议包括:

  • 检查我使用的是 32 位版本的 SDL2 DLL
  • 安装/重新安装适用于 Visual Studio 2015 的 Visual C++ Redistributable 的 x86 版本
  • 使用Dependency Walker排除故障的 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 静态分析 Dependency Walker static analysis

Dependency Walker 分析结果 Dependency Walker profiling results

在那之后,探查器卡住并且永远不会继续。请注意,SDL 组件和 VC 运行时加载没有错误。

程序在我的两台旧机器上正确编译和加载,一台运行 32 位 Windows 7,一台运行 64 位 Windows 10。

现在是实际问题。我还可以采取哪些其他步骤来调试此崩溃?或者有人从我提供的信息中看出我做错了什么吗?

相关问题:

编辑:

正如 rflobao 所建议的,我在 32 位 exe 上使用 64 位版本的 Dependency Walker。这是我的分析运行的新输出:

New Dependency Walker Profile Output

此时,和以前一样,Dependency Walker 卡住了。我仍然完全迷失了方向,感觉自己离确定问题的原因还差得很远。

最佳答案

请注意,Dependency Walker 有 32 位和 64 位版本。如果您的应用程序是 32 位的,您应该使用 32 位版本。否则 Dependency Walker 将看到 System32 而不是 SisWOW64 的库。您的图像显示混合了 32 位和 64 位库,其中 64 位有错误。

关于c++ - 在Win10上用VS2015编译的C++ SDL2程序调试加载时间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872877/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com