visual studio - c++应用程序无法正常启动(0xc000000d)

visual studio - C++ application fails to start correctly (0xc000000d)

本文关键字:常启动 启动 0xc000000d studio c++ 应用程序 visual      更新时间:2023-10-16

我正在两台开发计算机上使用VS2010编写c++应用程序-都是Win7 64位SP1。我使用git来同步存储库。

在其中一台机器上,编译的可执行文件(以及测试执行文件)停止工作,出现以下错误,而在另一台机器上,它工作正常,我可以继续开发。

应用程序无法正确启动(0xc000000d)。单击OK关闭应用程序。

我尝试删除存储库并再次克隆它。我还确保我有相同版本的Boost, git, Visual Studio。此外,我尝试了调试(步进),但错误发生在任何一行代码之前。

请注意,据我所知,我正在跟踪Visual Studio的解决方案项目配置文件,详见此处。

我很困惑,你怎么调试这个?

更新1:

只有调试版本运行失败。发布版本运行良好

UPDATE 2:不工作的可执行文件在另一台计算机上工作!

UPDATE 3:我重新安装了VS2010(完全相同的版本)-没有帮助。令人惊讶的是,编译后的文件在两台机器之间的大小不同。

我遇到了和你提到的一样的问题。我的解决方案:

  1. 清理清单文件并重建
  2. 在属性页->清单工具->确保"附加选项"设置为空。(我之前设置为"/validate_manifest")。

或者你可以尝试"嵌入清单-> NO",重建,然后设置回是。这听起来很荒谬,但有时确实有效。我不知道为什么。

我在Win7/VS2010/c++上突然没有警告地出现了同样的现象。调试应用程序无法启动,初始化和加载多个dll时得到0xC000000D。找到一个我自己负责的基本dll,使用链接器设置。修改设置,增量重建->应用程序启动,重建所有->应用程序再次崩溃。在链接器设置中将"generate manifest"设置为"no"后,示例应用可以正常工作,但主应用仍然崩溃。在将"generate manifest"设置为"no"后,对于大多数dll ->应用程序再次以调试模式启动。这些东西是非常虚假的,因为一些dll需要修改设置,而另一些则不需要。

看看这个问题的前两个答案

程序崩溃与0xC000000D和没有异常-我如何调试它?

在它失败的机器上,试着运行调试可执行文件,而不是在调试器下,并更新你的问题来说明发生了什么。如果它崩溃了,那么您是否能够在消息框仍然存在的情况下附加调试器,并获得堆栈跟踪,告诉您它正在崩溃的函数?

这是最奇怪的事情....

尝试删除"ipch"目录然后重建。

希望它对你有用,我在这上面浪费了很多时间。

禁用/启用预编译头为我修复了这个问题。我只在Debug x64上面临崩溃-我猜这与从boost 1.50升级到1.52有关,同时保留pch文件。

在我的情况下,我通过在所有项目中将generate manifest设置为NO,使其再次工作

我已经改变了"嵌入清单"设置为NO,然后回到是,但它没有帮助。对于我来说,将通用->平台工具集设置为Windows SDK 7.1用于我的程序和所有使用它编译的依赖库很有帮助。

这是ipch只是删除整个文件夹,它会清理它。

我在MSVC2015上运行的项目中使用MSVC2010编译的OpenCV库时看到了错误。更改项目配置属性->通用->平台工具集从Visual Studio 2015(v140)到Visual Studio 2010(v100)解决了这个错误。