DLL是指動態連結庫,是一種可執行文件,允許程式共享執行特殊任務所需的程式碼和其他資源。在Windows中,許多應用程式並不是完整的可執行文件,它們被分割成一些相對獨立的動態連結庫,即DLL文件,放置在系統中。一個應用程式可有多個DLL文件,一個DLL檔案也可能被幾個應用程式所共用,這樣的DLL檔案稱為共享DLL檔案。
本教學操作環境:windows7系統、Dell G3電腦。
DLL是Dynamic Link Library的縮寫,意為動態連結庫,,也有人稱應用程式拓展;它是一種可執行文件,允許程式共享執行特殊任務所需的程式碼和其他資源。
在Windows中,許多應用程式並不是一個完整的可執行文件,它們被分割成一些相對獨立的動態連結庫,即DLL文件,放置在系統中。當我們執行某一個程式時,對應的DLL檔就會被呼叫。一個應用程式可有多個DLL文件,一個DLL檔案也可能被幾個應用程式所共用,這樣的DLL檔案稱為共享DLL檔案。
DLL檔案允許程式共用執行特殊任務所需的程式碼和其他資源。比較大的應用程式都由許多模組組成,這些模組分別完成相對獨立的功能,它們彼此協作來完成整個軟體系統的工作。可能存在一些模組的功能較為通用,在構造其它軟體系統時仍會被使用。在建構軟體系統時,如果將所有模組的原始程式碼靜態編譯到整個應用程式EXE 檔案中,會產生一些問題:一個缺點是增加了應用程式的大小,它會佔用更多的磁碟空間,程式運行時也會消耗較大的記憶體空間,造成系統資源的浪費;另一個缺點是,在編寫大的EXE 程式時,在每次修改重建時都必須調整編譯所有原始碼,增加了編譯過程的複雜性,也不利於階段性的單元測試。
Windows 系統平台上提供了一個完全不同的較有效的程式設計和運行環境,你可以將獨立的程式模組建立為較小的 DLL 文件,並可對它們單獨編譯和測試。在運作時,只有當 EXE 程式確實要呼叫這些 DLL 模組的情況下,系統才會將它們裝載到記憶體空間中。這種方式不僅減少了 EXE 檔案的大小和對記憶體空間的需求,而且使這些 DLL 模組可以同時被多個應用程式使用。 Windows 本身就將一些主要的系統功能以 DLL 模組的形式實現。
一般來說,DLL 是一種磁碟文件,以.dll、.DRV、.FON、.SYS 和許多以 .EXE 為副檔名的系統檔案都可以是 DLL。它由全域資料、服務函數和資源組成,在運行時被系統載入到呼叫程序的虛擬空間中,成為呼叫程序的一部分。如果與其它 DLL 之間沒有衝突,則該檔案通常會對應到進程虛擬空間的相同位址上。 DLL 模組包含各種導出函數,用於向外界提供服務。 DLL 可以有自己的資料段,但沒有自己的堆疊,使用與呼叫它的應用程式相同的堆疊模式;一個DLL 在記憶體中只有一個實例;DLL 實作了程式碼封裝性;DLL 的編制與特定的程式語言及編譯器無關。
在 Win32 環境中,每個進程都複製了自己的讀取/寫入全域變數。如果想要與其它進程共享內存,則必須使用內存映射檔案或聲明一個共享資料段。 DLL 模組所需的堆疊記憶體都是從運行進程的堆疊中分配出來的。 Windows 在載入 DLL 模組時將進程函數呼叫與 DLL 檔案的匯出函數相符。 Windows 作業系統對 DLL 的操作只是把 DLL 對應到需要它的程序的虛擬位址空間。 DLL 函數中的程式碼所建立的任何物件(包括變數)都歸呼叫它的執行緒或進程所有。
DLL的優點
當程式使用 DLL 時,具有以下的優點: 使用較少的資源,當多個程式使用同一個函數庫時,DLL 可以減少在磁碟和實體記憶體中載入的程式碼的重複量。這不僅可以大大影響在前台運行的程序,而且可以大大影響其他在 Windows 作業系統上運行的程序。推廣模組式體系結構DLL 有助於促進模組式程式的開發。這可以幫助您開發要求提供多個語言版本的大型程式或要求具有模組式體系結構的程式。模組式程式的一個範例是具有多個可以在執行時間動態載入的模組的計帳程式。簡化部署和安裝當 DLL 中的函數需要更新或修復時,部署和安裝 DLL 不要求重新建立程式與該 DLL 的連結。此外,如果多個程式使用同一個 DLL,那麼多程式都會從該更新或修復中獲益。當您使用定期更新或修復的第三方 DLL 時,此問題可能會更頻繁地出現。
更多相關知識,請造訪常見問題欄位!
以上是dll檔案是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!