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

McL*_*Lan 2 c++ qt qt-creator

我正在Windows 10上开发我的QT应用程序.开发完成(至今).

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

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

有什么问题以及如何解决?

Cod*_*ray 7

出于某种原因,错误消息中会给出错误代码.它们对普通用户没有任何意义,但我们是程序员,我们是目标受众.既然谷歌已经被发明了,那么你绝对没有理由不花5秒时间把谷歌的错误代码看成是什么意思.

在这种情况下,0xc000a200是一个对应的错误代码STATUS_NOT_APPCONTAINER.具体来说,COM错误代码的主列表位于Windows SDK标头中ntstatus.h.如果有人看到这个,可以看到以下描述:

此操作仅在app容器的上下文中有效.

不可否认,现在,一旦你达到这一点,你可能会发现自己处于最佳状态.你可能不知道app容器是什么,当然也没有关于如何解决它的线索.但至少那时你可以提出一个很好的问题,这将给你一个很好的答案.

但是,不管怎样,让我们​​看看你这次能不能幸运.当不在应用程序容器内的应用程序尝试加载标记为应用程序容器一部分的DLL时,最常遇到此错误.链接器负责将DLL标记为是否属于应用程序容器,由您正在使用的任何链接器的一系列选项控制.在微软的连接器,它是/APPCONTAINER:YES/APPCONTAINER:NO对照这一点.我不确定Qt Creator使用什么工具链,但如果它不是微软的,那至少应该让你开始在链接器的文档中找到正确的位置.确保应用程序使用的所有DLL 都未标记为应用程序容器的一部分.

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