1. DLL文件缺失為哪般? 作為與EXE發生關聯的一種文件,DLL文件可與其關聯的EXE主文件處在同一個目錄中,也可能不在同一目錄中。許多程序共享使用的DLL文件隨系統存在于Windows目錄或其子目錄中,為系統自帶的文件,也有軟件在安裝時才將這些文件安裝在系統目錄中。但是,當一些程序作為“綠色”軟件使用時,人們又往往會忽略這一點。在同樣的系統中,拷貝了主程序而未拷貝DLL文件,到了另一個相同版本的系統中使用,由于該系統中默認已有所需DLL文件,所以給人的假象便是該軟件好像不需要DLL文件也能運行,但實際上在運行中它是要調用系統目錄中的DLL文件的。若將該軟件直接拷貝移植到了另一個不同版本的系統中,若系統中不包含其所需的DLL文件,運行就會出現問題,顯示DLL缺失的提示。 2. 跨越系統 DLL借用移植 知道了問題發生的原因,就可以用“倒推法”解決了。系統提示缺少哪個文件,就通過系統搜索功能,在原來運行完好的系統中搜索這個文件,從搜索結果中選擇位于系統目錄下該DLL文件版本,拷貝移植到新的系統目錄中,或者直接拷貝到與主程序相同的目錄中即可。 以一款剪貼板軟件3DClip.exe為例,這款軟件在Windows 7之前的系統中一直運行良好,且人們一向都將起其作為綠色軟件直接拷貝使用。但在Windows 8之后的系統中運行,卻出現了系統錯誤提示信息,顯示“無法啟動此程序,因為計算機中丟失MSVBVM50.DLL。嘗試重新安裝該程序解決此問題”(圖1)。由于下載不到該軟件的安裝程序或安裝后問題依舊,因此只有通過尋找MSVBVM50.DLL來解決了。 此前在Windows XP中3DClip.exe運行一切正常,因此可以斷定該MSVBVM50.DLL文件一定存在于Windows XP系統的某個角落。這時只需找一臺運行Windows XP的電腦,用搜索工具在系統盤下搜索MSVBVM50.DLL文件,從搜索結果中復制此文件到新系統中(圖2),或直接拷貝到3DClip.exe所在的文件夾中運行。這時,我們發現已經能一如既往地啟動該軟件了(圖3)。 小提示: 缺失的DLL文件不一定非要拷貝到軟件相同的目錄或Windows目錄下,其實拷貝到系統路徑能夠識別的其他位置也可以。那么,系統能夠識別的路徑有哪些?這需要通過系統“高級”設置窗口的“環境變量”來查看PATH變量,雙擊即可看到可支持的完整路徑變量(圖4)。將DLL文件放在這些文件夾中都可以找到。此外,也可以直接在命令提示符窗口中運行不帶任何參數的“PATH”命令來查看當前可支持的系統路徑(圖5)。 為了防止今后在不同系統下運行程序再次遇到缺失DLL的情況,在獲得了DLL文件之后,可將該文件與原程序EXE存于同一目錄一并打包存放。這樣,在下次使用時,就不用到處去找缺失的DLL文件了。 2. 借助工具 DLL自動下載 如果手頭上正好沒有低版本的系統,無法通過直接替換法找到相應的DLL文件。這時可以借助于專用工具來在線查找DLL文件。這里推介一款DllFiles.comFixer工具,啟動該軟件后,點擊“安裝DLL文件”選項卡,在出現的文本框中輸入要查找的DLL文件名,然后點擊“搜索DLL-Files.com”按鈕,即可聯網搜索出需要的DLL文件(圖6),下載補缺即可。 DllFiles.comFixer不但具有缺失DLL的檢測和自動修復功能,還具有注冊表檢測修復功能。軟件運行后,在“狀態”頁面,點擊“立即開始掃描”按鈕,即可對注冊表進行深入掃描、清理和優化,有利于提升系統的性能(圖7)。 |