Windows 10:应用程序无法正确启动 (0xc000a200)

Windows 10: The application was unable to start correctly (0xc000a200)

本文关键字:启动 0xc000a200 应用程序 Windows      更新时间:2023-10-16

我正在Windows 10上开发我的QT应用程序。开发已完成(截至目前(。

QT-creator 以调试模式运行应用程序后,我正在尝试从构建目录运行可执行文件。但它向我显示一个"应用程序错误"对话框,其中包含以下消息:

应用程序无法正确启动 (0xc000a200(。单击"确定" 以关闭应用程序。

问题是什么以及如何解决?!

错误消息中给出的错误代码是有原因的。它们对普通用户没有任何意义,但我们是程序员,我们是目标受众。既然谷歌已经被发明出来了,你绝对没有理由不花5秒钟来谷歌错误代码,看看它意味着什么。

在这种情况下,0xc000a200是对应于 STATUS_NOT_APPCONTAINER 的错误代码。COM 错误代码的主列表位于 Windows SDK 标头中,具体为 ntstatus.h 。如果查找此内容,则会看到以下描述:

此操作仅在应用容器的上下文中有效。

现在,诚然,一旦你到了这个地步,你可能会发现你已经超出了你的头脑。您可能不知道应用程序容器是什么,当然也不知道如何修复它。但至少这样你就能问一个好问题,这将大大有助于你得到一个好的答案。

但是,让我们看看这次你是否能走运。当不在应用容器内的应用程序尝试加载标记为应用容器一部分的 DLL 时,最常遇到此错误。它是链接器,负责将 DLL 标记为或不是应用容器的一部分,由你正在使用的任何链接器的一系列选项控制。在Microsoft的链接器上,控制这一点的是/APPCONTAINER:YES/APPCONTAINER:NO。我不确定Qt Creator使用什么工具链,但如果它不是Microsoft的工具链,这至少应该让你开始在该链接器文档中的正确位置查找。确保应用程序使用的所有 DLL 标记为应用容器的一部分。

对于常规C++桌面应用程序项目,默认情况下应关闭该选项,但其中一个 DLL 最初可能是作为 Windows 应用商店应用的一部分开始的。或者开关可能只是意外抛出。

我有同样的错误,但批准的解决方案不是治愈方法。 我发现我安装了错误的Qt编译器支持包。 对我来说,它是Windows 10 64位上的Qt 5.9.1,用于Visual Studio 2017。 安装Qt时,我选择了"msvc2017 64位"选项。 听起来不错,对吧? 错误:我想要的是"UWP x64 (MSVC2017("。