1. 程式人生 > >c++中使用外部庫exe,.dll與.lib檔案的生成與使用的詳解

c++中使用外部庫exe,.dll與.lib檔案的生成與使用的詳解

兩種庫:

•  包含了函式所在的DLL檔案和檔案中函式位置的資訊(入口),程式碼由執行時載入在程序空間中的DLL提供,稱為動態連結庫dynamic link library。
•  包含函式程式碼本身,在編譯時直接將程式碼加入程式當中,稱為靜態連結庫static link library。
共有兩種連結方式:

•  動態連結使用動態連結庫,允許可執行模組(.dll檔案或.exe檔案)僅包含在執行時定位DLL函式的可執行程式碼所需的資訊。
•  靜態連結使用靜態連結庫,連結器從靜態連結庫LIB獲取所有被引用函式,並將庫同程式碼一起放到可執行檔案中。

--------------------------------------------------------------------------------

兩種檔案的區別

--------------------------------------------------------------------------------

使用lib需注意兩個檔案:

•.h標頭檔案,包含lib中說明輸出的類或符號原型或資料結構。應用程式呼叫lib時,需要將該檔案包含入應用程式的原始檔中

                       :屬性頁”->“VC++目錄”->“包含目錄”中追加下面一行:;include資料夾路徑。
•.LIB檔案:放在工程屬性裡面:o屬性頁”->“VC++目錄”->“庫目錄”中追加一行,lib檔案的路徑。

exe檔案:加入環境變數

使用dll需注意三個檔案:

•.h標頭檔案,包含dll中說明輸出的類或符號原型或資料結構的.h檔案。應用程式呼叫dll時,需要將該檔案包含入應用程式的原始檔中。
•.LIB檔案,是dll在編譯、連結成功之後生成的檔案,作用是當其他應用程式呼叫dll時,需要將該檔案引入應用程式,否則產生錯誤(如果不想用lib檔案或者沒有lib檔案,可以用WIN32 API函式LoadLibrary、GetProcAddress裝載)。
•dll檔案,放在工程專案的debug下面。真正的可執行檔案,開發成功後的應用程式在釋出時,只需要有.exe檔案和.dll檔案,並不需要.lib檔案和.h標頭檔案。