C++;应用程序无法正确启动(0xc000000d) 我在两台DEV计算机上使用VS2010编写一个C++应用程序——两个都是Wi764位SP1。我使用git同步存储库

C++;应用程序无法正确启动(0xc000000d) 我在两台DEV计算机上使用VS2010编写一个C++应用程序——两个都是Wi764位SP1。我使用git同步存储库,c++,visual-studio,C++,Visual Studio,在其中一台机器上,编译后的可执行文件(以及testexec)由于以下错误而停止工作,而在另一台机器上,它工作正常,我能够继续开发 应用程序无法正确启动(0xc000000d)。单击“确定”关闭应用程序 我尝试删除存储库并再次克隆它。我还确保我有相同版本的Boost、git和visualstudio。此外,我尝试过调试(单步执行),但在到达任何代码行之前都会发生错误 请注意,据我所知,我正在跟踪Visual Studio的解决方案\项目配置文件 我不知所措,你怎么调试这个 更新1: 只有调试版本无

在其中一台机器上,编译后的可执行文件(以及testexec)由于以下错误而停止工作,而在另一台机器上,它工作正常,我能够继续开发

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

我尝试删除存储库并再次克隆它。我还确保我有相同版本的Boost、git和visualstudio。此外,我尝试过调试(单步执行),但在到达任何代码行之前都会发生错误

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

我不知所措,你怎么调试这个

更新1: 只有调试版本无法运行。发行版运行良好

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


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

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


在出现故障的机器上,尝试在不使用调试器的情况下运行调试可执行文件,并更新问题以说明发生了什么。如果它崩溃,那么您是否能够在消息框仍然存在的情况下附加调试器,并获得一个堆栈跟踪,告诉您它崩溃在哪个函数中?

这是最奇怪的事情

尝试删除“ipch”目录,然后重新生成


希望它对你有用,我浪费了这个时间。

< P>我在Wi7/VS2010/C++中突然出现了同样的现象。无法启动调试应用程序,在初始化和加载多个DLL时获得0xC000000D。找到了一个我自己负责的基本dll,并使用链接器设置进行了处理。修改设置,增量重建->应用程序启动,全部重建->应用程序再次崩溃。在链接器设置中将“生成清单”设置为“否”后,示例应用程序工作,但主应用程序仍然崩溃。将我的大多数DLL的“生成清单”设置为“否”后,应用程序将再次以调试模式启动。这些东西是非常虚假的,因为一些DLL需要修改设置,而其他DLL则不需要。

我遇到了与您提到的相同的问题。 我的解决方案:

  • 清理清单文件并重新生成
  • 在属性页->清单工具->确保“附加选项”设置为空。 (之前我将其设置为“/validate_manifest”)

  • 或者您可以尝试“嵌入清单->否”,重新生成,然后设置回“是”。这听起来很可笑,但有时确实有效。我不知道为什么。

    在我的例子中,通过在所有项目上将“生成清单”设置为“否”,我将“嵌入清单”设置改为“否”,然后又改回“是”,但没有帮助。
    对于我来说,为我的程序和使用它编译的所有依赖库将General->Platform Toolset设置为Windows SDK 7.1有帮助。

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

    是ipch删除了整个文件夹,它会将其清除。我也困惑了一会儿。

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

    使用Dependency Walker--查看是否存在DLL版本差异。是否可以对其进行调试并检查其运行位置?@rturrado-我尝试过调试(介入),但在到达任何代码行之前出现错误检查对WinSXS缓存的引用。同一个库VC90.CRT(适用于VS2008,asume的前身)可能有不同的版本。这可能是由于仅在其中一台计算机上安装了VS service pack造成的。检查开发的应用程序所需的版本以及在WinSXS中找到的版本。是否可以查看事件日志以了解有关此异常的更多信息,以及发生此异常的地址?在VS2010(F5)中运行此异常时以及在运行可执行文件时都会发生此错误。错误是一个带有单个OK按钮的弹出窗口(无中止\重试\忽略选项),因此在该阶段,您是否能够使用debug->attach to process附加调试器?我尝试了几次git cleanup,这也删除了ipch目录,但都没有用