![解决运行时错误](https://linux22.com/image/1279444/%E8%A7%A3%E5%86%B3%E8%BF%90%E8%A1%8C%E6%97%B6%E9%94%99%E8%AF%AF.png)
从昨天起,我一登录 Windows XP (SP3) 帐户就会弹出两个错误框,提示:
Microsoft Visual C++ Runtime Library
Runtime error!
Program: C:\WINDOWS\explorer.exe
This application has requested the Runtime to terminate it in an unusual way.
没有奇怪的服务在运行,系统或应用程序事件日志中也没有错误。有什么想法可以追踪导致此错误的原因吗?我已经扫描了病毒,并运行了 sfc(系统文件检查器)。
谢谢任何帮助或建议。
更新:
我卸载了最近安装的几个应用程序(MS Visual C# 2010 Express、Visual Web Developer、SQL Server 2008 以及 Visual C++ 2010 Runtime 和 MySQL Workbench),问题解决了。有人知道与 Windows XP SP3 不兼容吗?有没有办法找出问题,而不用随机猜测系统上有什么冲突?
答案1
Windows 资源管理器不使用 Visual C++ 运行时。问题是由注入 explorer.exe 的代码引起的。根据您的描述,该代码可能依赖于 Visual C++ 2010 运行时,如果缺少该运行时,将无法运行。卸载 Visual C++ 2010 运行时不是解决方案,该运行时在开发人员中很受欢迎,当您安装依赖于该运行时的其他软件时,您可能会恢复该运行时。
向 explorer.exe 注入代码的方法有很多,从 Shell 扩展到软件键盘,从病毒到全局钩子。您可以使用免费软件工具ShellEx查看器列出(并可能禁用)shell 扩展。至于检查哪些 DLL 已加载到 explorer.exe,您可以使用进程探索器来自 sysinternals。
由于您看起来像是一名软件开发人员,因此您可能可以查看崩溃转储。当资源管理器崩溃时,保存崩溃转储和在 windbg 中分析转储看看到底发生了什么。