我正在Windows 10上开发我的QT应用程序。开发完成(至今)。
从QT-creator以调试模式运行应用程序后,我试图从build目录运行可执行文件。但它向我展示了一个"应用程序错误"对话框显示以下消息:
应用程序无法正确启动(0xc000a200)。单击确定 关闭申请。
问题是什么以及如何解决?!
答案 0 :(得分:6)
出于某种原因,错误消息中会给出错误代码。它们对普通用户没有任何意义,但我们是程序员,我们是目标受众。既然Google已经被发明了,那么你绝对没有理由不花5秒时间向Google发送错误代码,看看它是什么意思。
在这种情况下,0xc000a200
是与STATUS_NOT_APPCONTAINER
对应的错误代码。 COM错误代码的主列表位于Windows SDK标头中,特别是ntstatus.h
。如果看一下这个,可以看到以下描述:
此操作仅在应用容器的上下文中有效。
现在,诚然,一旦你达到这一点,你可能会发现自己已经完全掌控了。你可能不知道app容器是什么,当然也没有关于如何修复它的线索。但至少那时你可以问一个好的问题,这将给你一个很好的答案。
但是,无论如何,让我们看看你这次能不能幸运。当应用程序容器中不的应用程序尝试加载标记为应用程序容器一部分的DLL时,通常会遇到此错误。链接器负责将DLL标记为是否属于应用程序容器,由您使用的任何链接器的一系列选项控制。在Microsoft的链接器上,它是/APPCONTAINER:YES
and /APPCONTAINER:NO
来控制它。我不确定Qt Creator使用的工具链是什么,但如果它不是微软的话,那至少应该让你开始在链接器的文档中找到正确的位置。确保您的应用程序使用的所有DLL都 not 被标记为应用程序容器的一部分。
默认情况下,对于常规C ++桌面应用程序项目,该选项应该关闭,但其中一个DLL可能是作为Windows应用商店应用程序的一部分开始生效的。或者可能是交换机被意外抛出了。
答案 1 :(得分:1)
我有同样的错误,但批准的解决方案并非治愈。我发现我安装了错误的Qt编译器支持包。对我来说,Windows 10 64位上的Qt 5.9.1与Visual Studio 2017一起使用。安装Qt时,我选择了" msvc2017 64位"选项。听起来不错吧?错了:我想要的是" UWP x64(MSVC2017)"。