分布式系統(tǒng) 什么是動(dòng)態(tài)鏈接庫(kù)?
什么是動(dòng)態(tài)鏈接庫(kù)?什么是動(dòng)態(tài)鏈接庫(kù)?DLL三個(gè)字母對(duì)于你來(lái)說一定很熟悉吧,它是Dynamic Link Library 的縮寫形式,動(dòng)態(tài)鏈接庫(kù) (DLL) 是作為共享函數(shù)庫(kù)的可執(zhí)行文件。動(dòng)態(tài)鏈接提供了
什么是動(dòng)態(tài)鏈接庫(kù)?
什么是動(dòng)態(tài)鏈接庫(kù)?DLL三個(gè)字母對(duì)于你來(lái)說一定很熟悉吧,它是Dynamic Link Library 的縮寫形式,動(dòng)態(tài)鏈接庫(kù) (DLL) 是作為共享函數(shù)庫(kù)的可執(zhí)行文件。
動(dòng)態(tài)鏈接提供了一種方法,使進(jìn)程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個(gè) DLL 中,該 DLL 包含一個(gè)或多個(gè)已被編譯、鏈接并與使用它們的進(jìn)程分開存儲(chǔ)的函數(shù)。DLL 還有助于共享數(shù)據(jù)和資源。多個(gè)應(yīng)用程序可同時(shí)訪問內(nèi)存中單個(gè) DLL 副本的內(nèi)容。動(dòng)態(tài)鏈接庫(kù)是什么東西?
你可以簡(jiǎn)單的把 DLL看成一種倉(cāng)庫(kù),它提供給你一些可以直接拿來(lái)用的變量、函數(shù)或類。在倉(cāng)庫(kù)的發(fā)展史上經(jīng)歷了“無(wú)庫(kù)-靜態(tài)鏈接庫(kù)-動(dòng)態(tài)鏈接庫(kù)”的時(shí)代。靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)都是共享代碼的方式,如果采用靜態(tài)鏈接庫(kù),則無(wú)論你愿不愿意,lib中的指令都被直接包含最終生成的 EXE文件中了。但是若使用 DLL,該 DLL不必被包含在最終 EXE文件中,EXE文件執(zhí)行時(shí)可以“動(dòng)態(tài)”地引用和卸載這個(gè)與 EXE獨(dú)立的 DLL文件。靜態(tài)鏈接庫(kù)和動(dòng)態(tài)鏈接庫(kù)的另外一個(gè)區(qū)別在于靜態(tài)鏈接庫(kù)中不能再包含其他的動(dòng)態(tài)鏈接庫(kù)或者靜態(tài)庫(kù),而在動(dòng)態(tài)鏈接庫(kù)中還可以再包含其他的動(dòng)態(tài)或靜態(tài)鏈接庫(kù)。