由于軟件與系統的兼容問題,我們有時會遇到軟件無法運行,系統提示缺少某個DLL文件支持的情況。在某個版本系統下用得好好的軟件,換到另一個系統為何就不能用了呢?出現這種情況后,除了換系統還有別的解決辦法嗎?下面小編就為大家介紹幾種補全DLL的方法,來看看吧
大家都知道,軟件的主程序一般為EXE類型的可執行文件,直接雙擊它可以啟動一個軟件。但對DLL文件,知道的可能不如EXE多。
DLL是一種“動態鏈接庫”文件,它是一套程序的重要組成部分。在許多程序的開發中,由于需要調用相似或相同的功能,或由于功能繁多,開發時設計者會將功能相對獨立或可以共享使用的部分單獨設計成一個模塊,于是,就將這些功能模塊包裝成一個動態鏈接庫DLL文件。一個程序可以調用多個DLL,而多個程序又可以分享同一個DLL,管理起來就方便多了,同時又大大節省了資源。
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)。