白帆
由于軟件與系統(tǒng)的兼容問題,我們有時會遇到軟件無法運(yùn)行、系統(tǒng)提示缺少某個DLL文件支持的情況。在某個版本系統(tǒng)下用得好好的軟件,換到另一個系統(tǒng)為何就不能用了呢?出現(xiàn)這種情況后,除了換系統(tǒng)還有別的解決辦法嗎?
1. DLL文件缺失為哪般
作為與EXE發(fā)生關(guān)聯(lián)的一種文件,DLL文件可與其關(guān)聯(lián)的EXE主文件處在同一個目錄中,也可能不在同一目錄中。許多程序共享使用的DLL文件隨系統(tǒng)存在于Windows目錄或其子目錄中,為系統(tǒng)自帶的文件,也有軟件在安裝時才將這些文件安裝在系統(tǒng)目錄中。但是,當(dāng)一些程序作為“綠色”軟件使用時,人們又往往會忽略這一點(diǎn)。在同樣的系統(tǒng)中,拷貝了主程序而未拷貝DLL文件,到了另一個相同版本的系統(tǒng)中使用,由于該系統(tǒng)中默認(rèn)已有所需的DLL文件,所以給人的假象便是該軟件好像不需要DLL文件也能運(yùn)行,但實際上在運(yùn)行中它是要調(diào)用系統(tǒng)目錄中的DLL文件的。若將該軟件直接拷貝移植到了另一個不同版本的系統(tǒng)中,若系統(tǒng)中不包含其所需的DLL文件,運(yùn)行時就會出現(xiàn)問題,顯示DLL缺失的提示。
2. 跨越系統(tǒng) ?DLL借用移植
知道了問題發(fā)生的原因,就可以用“倒推法”解決了。系統(tǒng)提示缺少哪個文件,就通過系統(tǒng)搜索功能,在原來運(yùn)行完好的系統(tǒng)中搜索這個文件,從搜索結(jié)果中選擇位于系統(tǒng)目錄下該DLL文件版本,拷貝移植到新的系統(tǒng)目錄中,或者直接拷貝到與主程序相同的目錄中即可。
以一款剪貼板軟件3DClip.exe為例,這款軟件在Windows 7之前的系統(tǒng)中一直運(yùn)行良好,且人們一向都將其作為綠色軟件直接拷貝使用。但在Windows 8之后的系統(tǒng)中運(yùn)行,卻出現(xiàn)了系統(tǒng)錯誤提示信息,顯示“無法啟動此程序,因為計算機(jī)中丟失MSVBVM50.DLL。嘗試重新安裝該程序解決此問題”(圖1)。由于下載不到該軟件的安裝程序或安裝后問題依舊,因此只有通過尋找MSVBVM50.DLL來解決了。
此前在Windows XP中3DClip.exe運(yùn)行一切正常,因此可以斷定該MSVBVM50.DLL文件一定存在于Windows XP系統(tǒng)的某個角落。這時只需找一臺運(yùn)行Windows XP的電腦,用搜索工具在系統(tǒng)盤下搜索MSVBVM50.DLL文件,從搜索結(jié)果中復(fù)制此文件到新系統(tǒng)中(圖2),或直接拷貝到3DClip.exe所在的文件夾中運(yùn)行。這時,我們發(fā)現(xiàn)已經(jīng)能一如既往地啟動該軟件了(圖3)。
3. 借助工具 ?DLL自動下載
如果手頭上正好沒有低版本的系統(tǒng),無法通過直接替換法找到相應(yīng)的DLL文件,這時可以借助于專用工具來在線查找DLL文件。這里推介一款DllFiles.comFixer工具,啟動該軟件后,點(diǎn)擊“安裝DLL文件”選項卡,在出現(xiàn)的文本框中輸入要查找的DLL文件名,然后點(diǎn)擊“搜索DLL-Files.com”按鈕,即可聯(lián)網(wǎng)搜索出需要的DLL文件(圖6),下載補(bǔ)缺即可。
DLL文件的作用與好處
大家都知道,軟件的主程序一般為EXE類型的可執(zhí)行文件,直接雙擊它可以啟動一個軟件,但對DLL文件知道的可能不如EXE多。DLL是一種“動態(tài)鏈接庫”文件,它是一套程序的重要組成部分。在許多程序的開發(fā)中,由于需要調(diào)用相似或相同的功能,或由于功能繁多,開發(fā)時設(shè)計者會將功能相對獨(dú)立或可以共享使用的部分單獨(dú)設(shè)計成一個模塊,于是就將這些功能模塊包裝成一個動態(tài)鏈接庫DLL文件。一個程序可以調(diào)用多個DLL,而多個程序又可以分享同一個DLL,管理起來就方便多了,同時又節(jié)省了資源。