dll學習(一):dll簡介

什麼是 DLL?

DLL 是一個包含可由多個程序同時使用的代碼和數據的庫。 例如,在 Windows 操作系統中,Comdlg32 DLL 執行與對話框有關的常見函數。 因此,每個程序都可以使用該 DLL 中包含的功能來實現“打開”對話框。 這有助於促進代碼重用和內存的有效使用。

通過使用 DLL,程序可以實現模塊化,由相對獨立的組件組成。 例如,一個計帳程序可以按模塊來銷售。 可以在運行時將各個模塊加載到主程序中(如果安裝了相應模塊)。 因爲模塊是彼此獨立的,所以程序的加載速度更快,而且模塊只在相應的功能被請求時才加載。

此外,可以更爲容易地將更新應用於各個模塊,而不會影響該程序的其他部分。 例如,你可能具有一個工資計算程序,而稅率每年都會更改。 當這些更改被隔離到 DLL 中以後,你無需重新生成或安裝整個程序就可以應用更新。

下表說明了 Windows 操作系統中的一些作爲 DLL 實現的文件: 

  • ActiveX 控件 (.ocx) 文件
    ActiveX 控件的一個示例是日曆控件,它使你可以從日曆中選擇日期。
  • 控制面板 (.cpl) 文件
    .cpl 文件的一個示例是位於控制面板中的項。 每個項都是一個專用 DLL。
  • 設備驅動程序 (.drv) 文件
    設備驅動程序的一個示例是控制打印到打印機的打印機驅動程序。

動態鏈接是一種在運行時將應用程序鏈接到庫的機制。這些庫保留在自己的文件中,不會複製到應用程序的可執行文件中。DLL在運行應用程序時鏈接到應用程序,而不是在創建應用程序時鏈接到應用程序。DLL可能包含指向其他DLL的鏈接。

很多時候,DLL被放置在具有不同擴展名的文件中,例如.exe,.drv或.dll。

DLL的優點

下面給出了擁有DLL文件的一些優點。

使用更少的資源

DLL文件不會與主程序一起加載到RAM中; 除非有要求,否則他們不會佔用空間。當需要DLL文件時,它將被加載並運行。例如,只要Microsoft Word的用戶正在編輯文檔,RAM中就不需要打印機DLL文件。如果用戶決定打印文檔,則Word應用程序將導致加載並運行打印機DLL文件。

促進模塊化架構

DLL有助於促進開發模塊化程序。它可以幫助你開發需要多語言版本的大型程序或需要模塊化架構的程序。模塊化程序的一個例子是具有許多模塊的計費程序,這些模塊可以在運行時動態加載。

幫助輕鬆部署和安裝

當DLL中的函數需要更新或修復時,DLL的部署和安裝不需要將程序與DLL重新鏈接。此外,如果多個程序使用相同的DLL,則所有這些程序都可以從更新或修復程序中受益。當你使用定期更新或修復的第三方DLL時,可能會更頻繁地發生此問題。

如果在模塊定義文件的IMPORTS部分中指定DLL鏈接作爲編譯的一部分,則應用程序和DLL可以自動鏈接到其他DLL。否則,你可以使用Windows LoadLibrary函數顯式加載它們。

重要的DLL文件

下面提到了一些用戶應該知道編程的重要dll文件 -

  • COMDLG32.DLL - 控制對話框

  • GDI32.DLL - 包含許多用於繪製圖形,顯示文本和管理字體的函數。

  • KERNEL32.DLL - 包含數百種用於管理內存和各種進程的函數。

  • USER32.DLL - 包含許多用戶界面功能。參與程序窗口的創建及其相互交互。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章