【发布时间】:2018-01-18 21:56:13
【问题描述】:
我正在两台开发计算机上使用 VS2010 编写 C++ 应用程序 - 两者都是 Win7 64 位 SP1。我使用 git 来同步存储库。
在其中一台机器上编译的可执行文件(以及测试执行程序)停止工作并出现以下错误,而在另一台机器上它工作正常,我能够继续开发。
应用程序无法正确启动 (0xc000000d)。单击“确定”关闭应用程序。
我尝试删除存储库并再次克隆它。我还确保我拥有相同版本的 Boost、git、Visual Studio。另外,我尝试调试(介入),但错误发生在到达任何代码行之前。
请注意,据我了解,我将 Visual Studio 的解决方案\项目配置文件跟踪为 detailed here。
我很茫然,你将如何调试这个?
更新 1: 只有 Debug 版本无法运行。 Release 版本运行良好
更新 2: 不工作的可执行文件确实在另一台计算机上工作!
更新 3: 我重新安装了 VS2010(完全相同的版本) - 没有帮助。令人惊讶的是,两台机器之间编译的文件大小不一样。
【问题讨论】:
-
使用 Dependency Walker - dependencywalker.com - 查看是否存在 DLL 版本差异。
-
你能调试它并检查它直到它能够运行的地方吗?
-
@rturrado - 我尝试调试(介入),但在到达任何代码行之前发生错误
-
检查对 WinSXS 缓存的引用。相同的库 VC90.CRT(这是用于 VS2008,假设前身)可能有不同的版本。这可能是由仅安装在其中一台计算机上的 VS 服务包引起的。检查开发的应用程序所需的版本以及在WinSXS中找到的版本。
-
您能否查看事件日志以获取有关此异常的更多信息以及它发生的地址?
标签: c++ visual-studio