在系統檔案中,有一種類型的檔案常常被各種程式所使用,而且當程式發生錯誤時,也常常會顯示這類檔案的訊息。這個檔案就是DLL檔。當程式出現問題時,我們可能常常會看到類似這種訊息:「xxx.dll發生錯誤,請關閉程式或洽系統管理人員」。
##CONTINUE##
DLL的全名為Dynamic Link Library,一般翻為「動態連結資料庫」。它是系統中的一種「公用檔」,可以視為作業系統與許多應用程式的「共用材料」。當某個DLL發生問題時,所有必須使用這個「共用材料」的程式功能就無法順利執行,然後就可能出玩上述那種錯誤訊息。Windows含 有一大堆各式各樣的DLL檔,它們所執掌的功能,大多屬於各種程式所常見的功能,例如當我們在任何程式中開啟視窗時,都會看到相同的外觀(例如它們的右上角都有三個分別代表「縮小」、「放大」、「關閉」的按鈕),操作方式也都相同,這就是Windows內建的標準DLL元件之一,任何程式想要執行視窗的開啟功能時,只要呼叫這個元件來執行即可。同樣,例如對話框、按鈕等常見的必備功能,都是由相關的DLL檔案來負責。
事實上,Windows可以看成由許DLL檔所組成的一套作業系統,這種方式可以讓作業系統容易開發與擴充,例如當作業系統相要對原有功能予以強化或加入一些新功能時,只要對舊有的DLL檔予以更新,或加上新的DLL檔即可,不必重撰寫整套程式碼,節省許多時間與複雜度。
這種做法不僅可以簡化作業系統本身的開發與擴充工作,對任何應用程式的開發而言也較方便。因為開發者可以專注在自己的特定功能,其他一 些Windows環境的標準功能,就交給作系統去負責即可。
此外,這還有一種好處,就是使用者不論使用任何程式,都會接觸相同的基本操作方式,不必每次都重新學習新的操作方法,否則若每個程式都有自己獨特的操作方式,那使用者鐵定受不了。
DLL不僅負責許多基本功能,它還負責一些特定應用的常見功能,例如在Internet環境中,就有一個相當知名的Winsock.dll檔來負責Internet環境中兩台電腦之間的底層溝通。
DLL會出問題,常常發生在兩種情形,一種是某個程式「秀逗」時,它所用到的DLL檔也連帶被系統鎖死,無法被其他程式所用使用,當這個DLL檔屬於核心檔案時,就可能導致一連串的錯誤,甚至當機。
另一種則是DLL檔的版本錯誤。由於功能的不斷強化,各種DLL檔都會常常更新。在更新作業系統時,新版的DLL檔會取代舊的,而在應用程式的安裝過程中,也會出現這種新版取代舊版的情形。當程式在安裝過程中,偵測出系統中已經擁有較新的版本時,一般都會出現訊息告知使用者,並建議保留新版,但若您不小心反而用舊版取代新版時,則日後如果有其他程式也要用到這個DLL時,就可能發生問題囉!
參考資料
http://tw.knowledge.yahoo.com/question/?qid=1005011100598
沒有留言:
張貼留言