如何解决“错误模块msvcr100.dll”

问题描述:

我得到一个客户端系统上这个奇怪的崩溃为我的C++可执行文件:如何解决“错误模块msvcr100.dll”

Faulting application Client.exe, version 0.0.0.0, faulting module msvcr100.dll, version 10.0.30319.1, fault address 0x0008d635. 

它工作正常,Windows 7的客户端上,它具有上述崩溃在Windows Server 2003 R2上,即使在安装Visual C++运行时环境之后。 Client.exe的第一行是std::cout命令,所以我非常确信这个错误不在执行中,而是在动态加载dll。不幸的是,我链接的库中有一个是第三方库,并且没有与运行时环境的静态链接,所以我不能静态链接可执行文件。

有关如何在这样一个问题(而这其中尤其是)继续有何建议?

+1

内存转储+符号插入的WinDbg,'!分析-v' – 2012-02-03 23:41:22

+0

我很难得到一个内存转储这一点。 DrWatson似乎没有产生一个。 – Cookie 2012-02-04 15:08:53

WinDbg实际上指出了这个问题。简单来说就是一些全局变量,由于客户端文件丢失而无法初始化,这只是异常报告。

这个链接看看:

http://forums.adobe.com/thread/851511

并考虑32位和64位。

最后,运行 “depends”(应该是适用于所有MSVisual工作室版本)对所有三个:

  • 您的.exe

  • 你的第三方.dll文件

  • 您的msvc运行时.dll

+0

不确定链接如何帮助。我正在为64位构建32位,但构建过程本身似乎正在为其他可执行文件工作...依赖显示一些随机丢失的东西(在客户端上的一些MSJava文件,在开发机器上的一些IE文件,没有一个后果)。但是,msvcr100.dll在开发计算机上的版本是10.00.40219.325,在客户端上是10.0.30319.1,如果这是个问题? – Cookie 2012-02-04 14:50:51

什么是异常代码?我没有看到第三方DLL是唯一的原因,否则操作系统会显示特定DLL丢失的错误。

或者是第三方DLL被动态加载(不知使用LoadLibrary),或者是一个托管DLL?

使用Dependency Walker,看看是否有一些DLL丢失。尝试使用自定义跟踪(F7),并在Depends的下窗格中查看调试输出。