俞木發(fā)
一些軟件在運(yùn)行出錯時(shí)會給出明確的錯誤提示。比如某軟件運(yùn)行時(shí)提示計(jì)算機(jī)丟失MSVCP140.dll,需要重裝程序以解決問題(圖1)。
由于已經(jīng)有明確的錯誤提示,可以先到“w w w.zhaodll.c om”下載對應(yīng)的DLL文件,32位Windows的文件保存到“C:\Windows\System32”中,64位的復(fù)制到“C:\Windows\SysWOW64”。然后啟動命令提示符窗口,輸入并執(zhí)行命令“regsvr32 msvcp140.dll”,注冊DLL文件即可。
如果執(zhí)行上述的操作后系統(tǒng)又提示缺少某文件,那么一般就需要安裝缺失的完整運(yùn)行庫。比如圖1所示的提示就是因?yàn)楸緳C(jī)沒有安裝對應(yīng)版本的VC運(yùn)行庫,MSVCP140.dll是“Visual C++ Redistributable for Visual Studio”(以下簡稱為VS)運(yùn)行庫文件,一般只要到微軟官網(wǎng)下載VS 2010以上版本安裝即可(圖2)。
注意:安裝時(shí)要選擇32位或64位版本的VS,主要是根據(jù)運(yùn)行的程序是32位還是64位來選擇,比如出錯的程序A是32位程序,那么就需要下載32位的VS(無論A是在32位Windows,還是在64位Windows中運(yùn)行)。當(dāng)然,為了避免以后遇到類似的問題,在64位系統(tǒng)(如Windows 11)中可以同時(shí)安裝32位和64位版本的VS。
有些程序運(yùn)行后雖然有提示,但沒有明確缺少某文件,或者運(yùn)行后直接閃退,那么就需要自行查找出錯的原因,并根據(jù)原因選擇解決方案。
1通過事件日志查看出錯原因
如筆者在運(yùn)行本機(jī)中的某個(gè)軟件時(shí)出錯,系統(tǒng)雖然有提示,但只是提示原因是“應(yīng)用程序的并行配置不正確”(圖3)。
對于類似的錯誤,Windows會自動將出錯原因?qū)懭胂到y(tǒng)日志。啟動“事件查看器”后展開“Windows日志→應(yīng)用程序”,然后在右側(cè)的窗格中篩選“級別”為“錯誤”的日志,通過日志查看可以知道,上述軟件出錯的原因是“找不到從屬程序集”(圖4)。
而從原因描述中則可以知道,這個(gè)程序集是適合x86版的VC80,即本機(jī)缺少VS 20 05運(yùn)行庫文件。到微軟官網(wǎng)下載所需的運(yùn)行庫vc_redist.x86.exe并安裝即可(圖5)。
2自行收集出錯日志
如果程序運(yùn)行出錯后沒有在系統(tǒng)日志中進(jìn)行記載,那么可以借助系統(tǒng)自帶的命令程序SxsTrace.exe來收集錯誤數(shù)據(jù)。
首先以管理員身份啟動命令提示符并定位到D:\,輸入并執(zhí)行“SxsTrace Trace -logfile:cfan.etl”命令,這樣會自動開始收集出錯信息,并將信息保存在“d:\cfan.etl”文件中。之后開始運(yùn)行指定的程序,程序出錯后返回命令提示符界面。按下回車鍵停止收集(圖6)。
繼續(xù)輸入并執(zhí)行命令“SxsTrace Parse-logfile:cfan.etl-out f ile:cfan.txt”,將收集信息的文件轉(zhuǎn)換為c fan.t x t文件。然后使用記事本程序打開“d:\cfan.txt”,其中錯誤信息顯示缺少“x64位Mic rosof t.VC90.MFC”,版本號是“9.0. 21022. 8”(圖7)。VC90對應(yīng)的是VS2008,同上,到微軟網(wǎng)站下載對應(yīng)的版本,安裝后即可解決問題。
DEP(數(shù)據(jù)執(zhí)行保護(hù))是Windows 10默認(rèn)開啟的一項(xiàng)安全功能,有助于防止計(jì)算機(jī)受到病毒和其他安全威脅的破壞。但是一些程序可能和DEP不兼容,如果DEP發(fā)現(xiàn)計(jì)算機(jī)上的程序錯誤地使用內(nèi)存,則會關(guān)閉此程序而導(dǎo)致運(yùn)行出錯。比如出現(xiàn)內(nèi)存不可讀寫錯誤、內(nèi)存地址錯誤等(圖8)。
此時(shí)可以將出錯的程序添加到DEP的排除列表中來解決這個(gè)問題。不過,這個(gè)操作會降低系統(tǒng)的安全性。出現(xiàn)這種情況時(shí)建議先更換軟件,看看同樣功能的軟件能否在DEP下正常運(yùn)行。如果確實(shí)需要使用這個(gè)軟件,可以打開“高級系統(tǒng)設(shè)置→高級”,點(diǎn)擊“性能”選項(xiàng)下的“設(shè)置”。然后在打開的窗口中切換到“數(shù)據(jù)執(zhí)行保護(hù)”,單選“為除下列程序之外的所有程序和服務(wù)啟用DEP”,點(diǎn)擊“添加”,將出錯的程序添加到排除列表中即可(圖9)。