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)。