動態鏈結庫DLL

2022-02-03 05:34:33 字數 619 閱讀 7679

函式和資料被編譯進乙個二進位制檔案(通常擴充套件名為.lib)。

靜態庫:

在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其它模組組合起來建立最終的可執行檔案(.exe檔案)。在多個同樣的程式執行時,系統保留了許多重複的**副本,造成記憶體資源浪費。

動態庫:

使用動態庫時,有乙個引入庫lib和乙個dll。引入庫lib包含被dll匯出的函式和變數的符號名,dll包含實際的函式和資料。在編譯鏈結可執行檔案時,只需要鏈結引入庫,dll中的函式**和資料並不複製到可執行檔案中,在執行的時候,再去載入dll,訪問dll中匯出的函式。使用dll的動態鏈結並不是將庫**拷貝,只是在程式中記錄了函式的入口點和介面,在程式執行時才將庫**裝入記憶體;不管多少程式使用dll,記憶體中都只有乙個dll的副本;當沒有程式使用它時,系統就將它移出記憶體,減少了對記憶體和磁碟的要求。

靜態庫中不能再包含其他的動態或靜態庫,而動態庫則可以。

編譯器尋找庫檔案的順序是

1、程式設計師指定的庫檔案目錄

2、當前工程的工程目錄

3、windows目錄

4、system32

5、系統的環境變數

待續,然後接著說動態鏈結庫載入的隱式鏈結和顯式鏈結。

DLL(動態鏈結庫)程式設計

dll是現在常見的檔案,它整合了程式的很多功能在裡面。一般情況下,它不能直接被執行,常見的使用方法是用其他的 exe呼叫其執行,以使其內部功能表現出來。還有 ocx檔案也與之類似,也就是人們常說的com 1.簡要 windows api中所有的函式都包含在dll中,其中有3個最重要的dll。1 ke...

DLL 動態鏈結庫 專題

windows api中所有的函式都包含在dll中,其中有3個最重要的dll。1 kernel32.dll 它包含那些用於管理記憶體 程序和執行緒的函式,例如createthread函式 2 user32.dll 它包含那些用於執行使用者介面任務 如視窗的建立和訊息的傳送 的函式,例如createw...

dll動態鏈結庫(1)

1 庫型別 2 動態庫簡介 3 動態庫與靜態庫的區別 a 靜態庫中的 會直接塞到exe中,而動態庫則可以被exe動態的載入或解除安裝 b 靜態庫中不能再包含其他的動態或靜態庫,而動態庫則可以。4 實現方式 動態庫可以被多種語言來實現,只要遵循動態庫的介面規範和呼叫方式即可,用各種語言編寫的動態庫也都...