C ++应用程序无法正确启动0xc000000d

问题描述

| 我正在两台开发计算机上使用VS2010编写C ++应用程序-都是Win7 64位SP1。我使用git同步存储库。 在其中一台计算机上,编译的可执行文件(以及测试exec)停止工作并出现以下错误,而在另一台计算机上,它可以正常工作,并且我可以继续开发。   应用程序无法正确启动(0xc000000d)。单击“确定”关闭该应用程序。 我尝试删除存储库并再次克隆。我还确保我具有相同版本的Boost,git,Visual Studio。另外,我尝试调试(介入),但是在到达任何代码行之前都会发生错误。 据我所知,我正在跟踪Visual Studio解决方案\\项目配置文件,如此处所述。 我不知所措,您将如何调试呢? 更新1: 仅调试版本无法运行。发布版本运行良好 更新2:无效的可执行文件确实可以在另一台计算机上工作! 更新3:我已经重新安装了VS2010(版本完全相同)-并没有帮助。令人惊讶的是,两台计算机之间的编译文件大小不同。     

解决方法

我遇到了与您提到的相同的问题。 我的解决方案: 清理清单文件并重建 在属性页->清单工具->中,确保\“其他选项\”设置为空。 (我之前将其设置为\“ / validate_manifest \”)。 或者,您可以尝试\“ Embed Manifest-> NO \”,重新生成,然后设置回Yes。听起来很荒谬,但有时确实有效。我不知道为什么。     ,我突然在Win7 / VS2010 / C ++上没有警告就得到了相同的现象。调试应用无法启动,初始化和加载多个dll时得到0xC000000D。找到了我自己负责的一个基本dll,并使用了链接器设置。修改设置,增量重建->应用程序启动,全部重建->应用程序再次崩溃。在链接器设置中将“生成清单”设置为“否”后,示例应用程序可以运行,但是主应用程序仍然崩溃。将我的大多数dll的\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。这些东西非常虚假,因为某些dll需要修改的设置,而其他则不需要。     ,看看这个问题的前两个答案 程序崩溃并出现0xC000000D且没有异常-如何调试它? 在发生故障的计算机上,尝试在调试器下而不是在运行调试可执行文件,并更新问题以说明会发生什么。如果它崩溃了,您是否能够在消息框仍然存在的情况下附加调试器,并获得一个堆栈跟踪信息来告诉您崩溃的功能是什么?     ,这是最奇怪的事情。 尝试删除\“ ipch \”目录,然后重新构建。 希望它对您有用,我为此浪费了时间。     ,禁用/启用预编译头对我来说解决了这个问题。 我仅在Debug x64上面临崩溃-我想这与从1.50升压到1.52的升级有关,同时保留了pch文件。     ,就我而言,我通过在所有项目上将generate manifest设置为NO来使其再次工作     ,我已经将“嵌入清单”设置更改为“否”,然后又恢复为“是”,但没有帮助。 对我来说,为我的程序将General-> Platform Toolset设置为Windows SDK 7.1,并使用它编译的所有依赖库都可以。     ,ipch只是删除整个文件夹,它将清除它。我也困惑了一段时间。     ,我在运行于MSVC2015的项目中使用通过MSVC2010编译的OpenCV库时看到错误。将项目配置属性->常规->平台工具集从Visual Studio 2015(v140)更改为Visual Studio 2010(v100)解决了该错误。