DLL(Dynamic Link Library)文件為動(dòng)態(tài)鏈接庫(kù)文件,又稱(chēng)“應(yīng)用程序拓展”,是軟件文件類(lèi)型。
正常,notepad默認(rèn)語(yǔ)言是Normal Text,與DLL本來(lái)就不是同一文件類(lèi)型,所以打開(kāi)是亂碼。(推薦學(xué)習(xí):notepad的使用)
在Windows中,許多應(yīng)用程序并不是一個(gè)完整的可執(zhí)行文件,它們被分割成一些相對(duì)獨(dú)立的動(dòng)態(tài)鏈接庫(kù),即DLL文件,放置于系統(tǒng)中。
當(dāng)我們執(zhí)行某一個(gè)程序時(shí),相應(yīng)的DLL文件就會(huì)被調(diào)用。一個(gè)應(yīng)用程序可使用多個(gè)DLL文件,一個(gè)DLL文件也可能被不同的應(yīng)用程序使用,這樣的DLL文件被稱(chēng)為共享DLL文件。
DLL文件中存放的是各類(lèi)程序的函數(shù)(子過(guò)程)實(shí)現(xiàn)過(guò)程,當(dāng)程序需要調(diào)用函數(shù)時(shí)需要先載入DLL,然后取得函數(shù)的地址,最后進(jìn)行調(diào)用。
使用DLL文件的好處是程序不需要在運(yùn)行之初加載所有代碼,只有在程序需要某個(gè)函數(shù)的時(shí)候才從DLL中取出。另外,使用DLL文件還可以減小程序的體積。
動(dòng)態(tài)鏈接庫(kù)是早期Windows系統(tǒng)由于受限于當(dāng)時(shí)計(jì)算機(jī)內(nèi)存空間較小的問(wèn)題而出現(xiàn)的一種內(nèi)存優(yōu)化方法。
當(dāng)一段相同的子程序被多個(gè)程序調(diào)用時(shí),為了減少內(nèi)存消耗,可以將這段子程序存儲(chǔ)為一個(gè)可執(zhí)行文件,當(dāng)被多個(gè)程序調(diào)用時(shí)只在內(nèi)存中生成和使用同一個(gè)實(shí)例。
在 Windows操作系統(tǒng)中,每個(gè)程序都可以使用該 DLL 中包含的功能來(lái)實(shí)現(xiàn)“打開(kāi)”對(duì)話框。這有助于促進(jìn)代碼重用和內(nèi)存的有效使用。
通過(guò)使用 DLL,程序可以實(shí)現(xiàn)模塊化,由相對(duì)獨(dú)立的組件組成。
例如,一個(gè)記賬程序可以按模塊來(lái)銷(xiāo)售。可以在運(yùn)行時(shí)將各個(gè)模塊加載到主程序中(如果安裝了相應(yīng)模塊)。因?yàn)槟K是彼此獨(dú)立的,所以程序的加載速度更快,而且模塊只在相應(yīng)的功能被請(qǐng)求時(shí)才加載。
此外,可以更為容易地將更新應(yīng)用于各個(gè)模塊,而不會(huì)影響該程序的其他部分。
例如,您可能具有一個(gè)工資計(jì)算程序,而稅率每年都會(huì)更改。當(dāng)這些更改被隔離到 DLL 中以后,您無(wú)需重新生成或安裝整個(gè)程序就可以應(yīng)用更新。