你懂的一,概念???????1)靜態(tài)鏈接庫就是你使用的.lib文件,">
c靜態(tài)庫與動態(tài)庫的區(qū)別

c靜態(tài)庫與動態(tài)庫的區(qū)別

ID:8807818

大?。?9.98 KB

頁數(shù):3頁

時間:2018-04-08

c靜態(tài)庫與動態(tài)庫的區(qū)別_第1頁
c靜態(tài)庫與動態(tài)庫的區(qū)別_第2頁
c靜態(tài)庫與動態(tài)庫的區(qū)別_第3頁
資源描述:

《c靜態(tài)庫與動態(tài)庫的區(qū)別》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、c++靜態(tài)庫與動態(tài)庫的區(qū)別分類:?C++2012-11-2611:41?3621人閱讀?評論(1)?收藏?舉報如果對Linux下靜態(tài)鏈接庫和動態(tài)鏈接庫感興趣,請狂點擊-->你懂的一,概念???????1)靜態(tài)鏈接庫就是你使用的.lib文件,庫中得代碼最后需要連接到你的可執(zhí)行文件中去,所以靜態(tài)連接的可執(zhí)行文件一般比較大一些?! ??????使用方法    ????????????????????1>?格式如:#pragmacomment(lib,"XXX.lib")  ????????????????????2>?針對開發(fā)環(huán)境:  ??????

2、????????????????????????????1、如果使用VC,可以在ProjectSetting-->Link中加入你的靜態(tài)庫,也可以直接把該.lib文件加入到你的工程中??????????????????????????????????  2、如果使用VisualStudio,位置在項目→配置屬性→連接器→輸入→附加依賴項中加入.lib文件  ??????構(gòu)造方法???????????????????????????在靜態(tài)庫情況下,函數(shù)和數(shù)據(jù)被編譯進一個二進制文件(通常擴展名為*.lib),VisualC++的編譯器在鏈接

3、過程中將從靜態(tài)庫中恢復(fù)這些函數(shù)和數(shù)據(jù)并把他們和應(yīng)用程序中的其他模塊組合在一起生成可執(zhí)行文件。這個過程稱為"靜態(tài)鏈接",此時因為應(yīng)用程序所需的全部內(nèi)容都是從庫中復(fù)制了出來,所以靜態(tài)庫本身并不需要與可執(zhí)行文件一起發(fā)行。???????????????編程使用:使用lib需注意兩個文件:??????????????????????(1).h頭文件,包含lib中說明輸出的類或符號原型或數(shù)據(jù)結(jié)構(gòu)。應(yīng)用程序調(diào)用lib時,需要將該文件包含入應(yīng)用程序的源文件中。??????????????????????(2).lib文件,見上面。????????2)Dyna

4、micLinkLibrary的縮寫形式,DLL是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫,DLL不是可執(zhí)行文件。動態(tài)鏈接提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個DLL中,該DLL包含一個或多個已被編譯、鏈接并與使用它們的進程分開存儲的函數(shù)。DLL還有助于共享數(shù)據(jù)和資源。多個應(yīng)用程序可同時訪問內(nèi)存中單個DLL副本的內(nèi)容。DLL是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫。??????????????DLL舉例??????????????????????????????ActiveX控件(.ocx)文

5、件:示例是日歷控件,它使您可以從日歷中選擇日期?!?????????????????????????????控制面板(.cpl)文件:cpl文件的一個示例是位于控制面板中的項。每個項都是一個專用DLL?!  ????????????????????設(shè)備驅(qū)動(.drv)文件???????????????編程使用;??????????????????????????使用dll需注意三個文件:????????????????????????????????????(1).h頭文件,包含dll中說明輸出的類或符號原型或數(shù)據(jù)結(jié)構(gòu)的.h文件。應(yīng)用程序調(diào)用

6、dll時,需要將該文件包含入應(yīng)用程序的源文件中。????????????????????????????????????(2).LIB文件,是dll在編譯、鏈接成功之后生成的文件,作用是當其他應(yīng)用程序調(diào)用dll時,需要將該文件引入應(yīng)用程序,否則產(chǎn)生錯誤。如果不想用lib文件或者沒有l(wèi)ib文件,可以用WIN32API函數(shù)LoadLibrary、GetProcAddress裝載。???????????????????????????????????(3).dll文件,真正的可執(zhí)行文件,開發(fā)成功后的應(yīng)用程序在發(fā)布時,只需要有.exe文件和.dll文

7、件,并不需要.lib文件和.h頭文件。二,初步認識??????????????共有兩種庫:????????????????????????????一種是lib包含了函數(shù)所在的DLL文件和文件中函數(shù)位置的信息(入口),代碼由運行時加載在進程空間中的DLL提供,稱為動態(tài)鏈接庫dynamiclinklibrary。????????????????????????????一種是lib包含函數(shù)代碼本身,在編譯時直接將代碼加入程序當中,稱為靜態(tài)鏈接庫staticlinklibrary。?????????????共有兩種鏈接方式:?????????????

8、??????????????動態(tài)鏈接使用動態(tài)鏈接庫,允許可執(zhí)行模塊(.dll文件或.exe文件)僅包含在運行時定位DLL函數(shù)的可執(zhí)行代碼所需的信息。????????

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。