我在我的C ++可执行文件的客户端系统上遇到了这个非常奇怪的崩溃:
Faulting application Client.exe, version 0.0.0.0, faulting module msvcr100.dll, version 10.0.30319.1, fault address 0x0008d635.
它在Windows 7客户端上运行良好,即使在安装visual C ++运行时环境之后,它在Windows Server 2003 R2上也崩溃了。 Client.exe的第一行是std::cout
命令,因此我非常确信故障不在执行中,而是动态加载dll。不幸的是,我链接的一个库是第三方,并且没有到运行时环境的静态链接,因此我无法静态链接可执行文件。
关于如何处理这样一个问题的建议(尤其是这个问题)?
答案 0 :(得分:0)
看一下这个链接:
http://forums.adobe.com/thread/851511
并考虑32-与64位。
最后,对所有这三个版本运行“depends”(它应该适用于所有MSVisual Studio版本):
您的.exe
您的第三方.dll
您的msvc运行时.dll
答案 1 :(得分:0)
什么是例外代码?我没有看到第三方DLL是唯一原因,否则操作系统会显示特定DLL丢失的错误。
或是第三方DLL是动态加载的(以某种方式使用LoadLibrary
),还是托管DLL?
使用Dependency Walker,查看是否缺少某些DLL。尝试使用depends本身跟踪(F7),并在Deplands的下方窗格中查看调试输出。
答案 2 :(得分:0)
WinDbg实际上指出了这个问题。简单来说,由于客户端上缺少文件而导致无法初始化的全局变量,这只是异常报告。