DLL 是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)的庫(kù)。例如,在 Windows 操作系統(tǒng)中,Comdlg32 DLL 執(zhí)行與對(duì)話框有關(guān)的常見(jiàn)函數(shù)。因此,每個(gè)程序都可以使用該 DLL 中包含的功能來(lái)實(shí)現(xiàn)“打開(kāi)”對(duì)話框。這有助于促進(jìn)代碼重用和內(nèi)存的有效使用。
通過(guò)使用 DLL,程序可以實(shí)現(xiàn)模塊化,由相對(duì)獨(dú)立的組件組成。例如,一個(gè)計(jì)帳程序可以按模塊來(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)用更新。
下表說(shuō)明了 Windows 操作系統(tǒng)中的一些作為 DLL 實(shí)現(xiàn)的文件:
●ActiveX 控件 (.ocx) 文件
ActiveX 控件的一個(gè)示例是日歷控件,它使您可以從日歷中選擇日期。
●控制面板 (.cpl) 文件
.cpl 文件的一個(gè)示例是位于控制面板中的項(xiàng)。每個(gè)項(xiàng)都是一個(gè)專(zhuān)用 DLL。
●設(shè)備驅(qū)動(dòng)程序 (.drv) 文件
設(shè)備驅(qū)動(dòng)程序的一個(gè)示例是控制打印到打印機(jī)的打印機(jī)驅(qū)動(dòng)程序。
微軟的Visual C++支持三種DLL,它們分別是Non-MFC Dll(非MFC動(dòng)態(tài)庫(kù))、Regular Dll(常規(guī)DLL)、ExteNSion Dll(擴(kuò)展DLL)。
1、Non-MFCDLL(非MFC動(dòng)態(tài)庫(kù))
這種動(dòng)態(tài)鏈接庫(kù)指的是不用MFC的類(lèi)庫(kù)結(jié)構(gòu),直接用C語(yǔ)言寫(xiě)的DLL,其導(dǎo)出的函數(shù)是標(biāo)準(zhǔn)的C接口,能被非MFC或MFC編寫(xiě)的應(yīng)用程序所調(diào)用。如果建立的DLL不需要使用MFC,那么應(yīng)該建立Non-MFCDLL,因?yàn)槭褂肕FC會(huì)增大用戶庫(kù)的大小,從而浪費(fèi)用戶的磁盤(pán)和內(nèi)存空間。
2、RegularDLL(常規(guī)DLL)