天天看點

動态庫和靜态庫差別

1. 靜态庫:函數和資料被編譯進一個二進制檔案(通常擴充名為.LIB)。

  • 在編譯連結可執行檔案時,連結器(Linker)從庫中複制這些函數和資料并把它們和應用程式的其它子產品組合起來建立最終的可執行檔案(.EXE檔案)。

2. 在使用動态庫的時候,一般提供兩個檔案:一個引入庫(.lib)和一個DLL。

  • 引入庫(.lib)包含被DLL導出的函數和變量的符号名

  • DLL包含實際的函數和資料。

  • 在編譯連結可執行檔案(.EXE檔案)時,隻需要連結引入庫,DLL中的函數代碼和資料并不複制到可執行檔案中

  • 在運作可執行檔案(.EXE檔案)的時候,再去加載DLL,通路DLL中導出的函數。

更多内容請看C/C++動态連結庫(DLL)詳解

來源:孫鑫_VC++_學習筆記