visual studio - c++应用程序无法正常启动(0xc000000d)
visual studio - C++ application fails to start correctly (0xc000000d)
我正在两台开发计算机上使用VS2010编写c++应用程序-都是Win7 64位SP1。我使用git来同步存储库。
在其中一台机器上,编译的可执行文件(以及测试执行文件)停止工作,出现以下错误,而在另一台机器上,它工作正常,我可以继续开发。
应用程序无法正确启动(0xc000000d)。单击OK关闭应用程序。
我尝试删除存储库并再次克隆它。我还确保我有相同版本的Boost, git, Visual Studio。此外,我尝试了调试(步进),但错误发生在任何一行代码之前。
请注意,据我所知,我正在跟踪Visual Studio的解决方案项目配置文件,详见此处。
我很困惑,你怎么调试这个?
更新1:只有调试版本运行失败。发布版本运行良好
UPDATE 2:不工作的可执行文件在另一台计算机上工作!
UPDATE 3:我重新安装了VS2010(完全相同的版本)-没有帮助。令人惊讶的是,编译后的文件在两台机器之间的大小不同。
我遇到了和你提到的一样的问题。我的解决方案:
- 清理清单文件并重建
- 在属性页->清单工具->确保"附加选项"设置为空。(我之前设置为"/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)解决了这个错误。
- 如何创建一个空的全局类并在启动时实例化它
- 即使我读取了所有内容,在FIFO上打开的QSocketNotifier也会一直启动
- 使用 std::string () const 函数启动线程或未来
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- 如何创建线程序列以按照启动顺序执行任务?
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- 在挂钩启动新线程时解除挂钩进程
- 程序无法启动,因为缺少 libmpc-3.dll
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- QSerialPort 在应用程序启动之前正在使用中
- 无法在 Arch Linux 中启动虚幻引擎 4
- C++关于指针和使用函数将它们启动到堆的行为究竟是什么?
- 如何使用 ctypes 停止和重新启动从 Python 运行的C++代码
- 程序在使用 system() 启动另一个可执行文件时停止
- Qt 和 Android - 如何使用 Qandroidjniobject 启动相机
- Q没有管理权限的 exe 无法启动维护工具
- 启动类函数作为失去引用的线程
- 如何使用C++确定应用程序是否已在窗口中启动?
- 如何在跨平台C++中以毫秒为单位获得系统启动/启动时间(它应该在Windows / IOS / Android / MA