对症下药 解决程序运行出错的问题

2022-05-30 20:35俞木发
电脑爱好者 2022年10期
关键词:命令提示符日志错误

俞木发

情况1 软件出错后有明确的提示

一些软件在运行出错时会给出明确的错误提示。比如某软件运行时提示计算机丢失MSVCP140.dll,需要重装程序以解决问题(图1)。

由于已经有明确的错误提示,可以先到“w w w.zhaodll.c om”下载对应的DLL文件,32位Windows的文件保存到“C:\Windows\System32”中,64位的复制到“C:\Windows\SysWOW64”。然后启动命令提示符窗口,输入并执行命令“regsvr32 msvcp140.dll”,注册DLL文件即可。

如果执行上述的操作后系统又提示缺少某文件,那么一般就需要安装缺失的完整运行库。比如图1所示的提示就是因为本机没有安装对应版本的VC运行库,MSVCP140.dll是“Visual C++ Redistributable for Visual Studio”(以下简称为VS)运行库文件,一般只要到微软官网下载VS 2010以上版本安装即可(图2)。

注意:安装时要选择32位或64位版本的VS,主要是根据运行的程序是32位还是64位来选择,比如出错的程序A是32位程序,那么就需要下载32位的VS(无论A是在32位Windows,还是在64位Windows中运行)。当然,为了避免以后遇到类似的问题,在64位系统(如Windows 11)中可以同时安装32位和64位版本的VS。

情况2 软件运行后没有明确的出错提示

有些程序运行后虽然有提示,但没有明确缺少某文件,或者运行后直接闪退,那么就需要自行查找出错的原因,并根据原因选择解决方案。

1通过事件日志查看出错原因

如笔者在运行本机中的某个软件时出错,系统虽然有提示,但只是提示原因是“应用程序的并行配置不正确”(图3)。

对于类似的错误,Windows会自动将出错原因写入系统日志。启动“事件查看器”后展开“Windows日志→应用程序”,然后在右侧的窗格中筛选“级别”为“错误”的日志,通过日志查看可以知道,上述软件出错的原因是“找不到从属程序集”(图4)。

而从原因描述中则可以知道,这个程序集是适合x86版的VC80,即本机缺少VS 20 05运行库文件。到微软官网下载所需的运行库vc_redist.x86.exe并安装即可(图5)。

2自行收集出错日志

如果程序運行出错后没有在系统日志中进行记载,那么可以借助系统自带的命令程序SxsTrace.exe来收集错误数据。

首先以管理员身份启动命令提示符并定位到D:\,输入并执行“SxsTrace Trace -logfile:cfan.etl”命令,这样会自动开始收集出错信息,并将信息保存在“d:\cfan.etl”文件中。之后开始运行指定的程序,程序出错后返回命令提示符界面。按下回车键停止收集(图6)。

继续输入并执行命令“SxsTrace Parse-logfile:cfan.etl-out f ile:cfan.txt”,将收集信息的文件转换为c fan.t x t文件。然后使用记事本程序打开“d:\cfan.txt”,其中错误信息显示缺少“x64位Mic rosof t.VC90.MFC”,版本号是“9.0. 21022. 8”(图7)。VC90对应的是VS2008,同上,到微软网站下载对应的版本,安装后即可解决问题。

情况3 程序和系统DEP不兼容导致的问题

DEP(数据执行保护)是Windows 10默认开启的一项安全功能,有助于防止计算机受到病毒和其他安全威胁的破坏。但是一些程序可能和DEP不兼容,如果DEP发现计算机上的程序错误地使用内存,则会关闭此程序而导致运行出错。比如出现内存不可读写错误、内存地址错误等(图8)。

此时可以将出错的程序添加到DEP的排除列表中来解决这个问题。不过,这个操作会降低系统的安全性。出现这种情况时建议先更换软件,看看同样功能的软件能否在DEP下正常运行。如果确实需要使用这个软件,可以打开“高级系统设置→高级”,点击“性能”选项下的“设置”。然后在打开的窗口中切换到“数据执行保护”,单选“为除下列程序之外的所有程序和服务启用DEP”,点击“添加”,将出错的程序添加到排除列表中即可(图9)。

猜你喜欢
命令提示符日志错误
一名老党员的工作日志
扶贫日志
游学日志
一种基于粗集和SVM的Web日志挖掘模型
《错误》:怎一个“美”字了得
可爱的错误等
Windows 7和Vista中命令提示符的几个小技巧