分布式系統(tǒng) 什么是動(dòng)態(tài)鏈接庫?
什么是動(dòng)態(tài)鏈接庫?什么是動(dòng)態(tài)鏈接庫?DLL三個(gè)字母對(duì)于你來說一定很熟悉吧,它是Dynamic Link Library 的縮寫形式,動(dòng)態(tài)鏈接庫 (DLL) 是作為共享函數(shù)庫的可執(zhí)行文件。動(dòng)態(tài)鏈接提供了
什么是動(dòng)態(tài)鏈接庫?
什么是動(dòng)態(tài)鏈接庫?DLL三個(gè)字母對(duì)于你來說一定很熟悉吧,它是Dynamic Link Library 的縮寫形式,動(dòng)態(tài)鏈接庫 (DLL) 是作為共享函數(shù)庫的可執(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)鏈接庫是什么東西?
你可以簡單的把 DLL看成一種倉庫,它提供給你一些可以直接拿來用的變量、函數(shù)或類。在倉庫的發(fā)展史上經(jīng)歷了“無庫-靜態(tài)鏈接庫-動(dòng)態(tài)鏈接庫”的時(shí)代。靜態(tài)鏈接庫與動(dòng)態(tài)鏈接庫都是共享代碼的方式,如果采用靜態(tài)鏈接庫,則無論你愿不愿意,lib中的指令都被直接包含最終生成的 EXE文件中了。但是若使用 DLL,該 DLL不必被包含在最終 EXE文件中,EXE文件執(zhí)行時(shí)可以“動(dòng)態(tài)”地引用和卸載這個(gè)與 EXE獨(dú)立的 DLL文件。靜態(tài)鏈接庫和動(dòng)態(tài)鏈接庫的另外一個(gè)區(qū)別在于靜態(tài)鏈接庫中不能再包含其他的動(dòng)態(tài)鏈接庫或者靜態(tài)庫,而在動(dòng)態(tài)鏈接庫中還可以再包含其他的動(dòng)態(tài)或靜態(tài)鏈接庫。