插件管理框架 for Delphi(一)
插件技術(shù)的出發(fā)點(diǎn)主要是為了使軟件能夠靈活地進(jìn)行擴(kuò)展功能,而不需要對(duì)主程序(框架程序)進(jìn)行重新編譯和發(fā)布。它的原理相當(dāng)簡單。軟件的功能由框架程序和插件來決定。在框架程序和插件之間具有一個(gè)特定的接口,它們兩者須通過這個(gè)接口來傳遞數(shù)據(jù)或控制信息,以實(shí)現(xiàn)軟件功能。因此,只要符合該接口的程序(或其他功能實(shí)體),就稱為該框架程序的插件。
插件實(shí)體一般分為兩種,一種是包含邏輯的程序,比如動(dòng)態(tài)庫、Exe程序等;另一種則是一組配置信息。前一種方式多見于作圖軟件,媒體 軟件,適合實(shí)現(xiàn)復(fù)雜的功能;后一種方式多用于實(shí)現(xiàn)軟件的Skin(皮膚)功能,以及其他一些不需要進(jìn)行復(fù)雜運(yùn)算的功能模塊(有許多游戲軟件的關(guān)卡也是采用此種方式實(shí)現(xiàn),比如阿達(dá)軟件的連連看)。
本篇給出在實(shí)現(xiàn)Dll插件方式框架程序的過程中,對(duì)Dll進(jìn)行管理的框架程序及使用例子,作為讀者進(jìn)行插件程序設(shè)計(jì)的基礎(chǔ)。具體而言,框架程序需要完成插件的裝載、功能調(diào)用以及卸載三類功能。
其實(shí)每個(gè)控制面板程序,都是操作系統(tǒng)的插件。因?yàn)槊總€(gè).cpl文件就是實(shí)現(xiàn)了特定接口的Dll。Windows的服務(wù)程序也是如此,它也只是在原有程序的基礎(chǔ)上處理了特定的windows消息而已。
其實(shí)從廣義上講,每個(gè)運(yùn)行在操作系統(tǒng)上的程序都是操作系統(tǒng)這個(gè)軟件的“插件”。
其實(shí)在Delphi中,已經(jīng)有一個(gè)插件管理的框架,那就是bpl。采用bpl組件包的方式也可以輕松實(shí)現(xiàn)功能的插件化擴(kuò)展。只是該方式有個(gè)缺點(diǎn):不支持其他開發(fā)工具(如vb、vc++)進(jìn)行插件開發(fā)。
)
untDllManager單元中定義了兩個(gè)基礎(chǔ)的類:
TDll:所有Dll類的父類,提供了裝載、卸載的相關(guān)操作;
TDllManager:Dll類的容器類。支持刪除元素方式卸載Dll實(shí)體。
以下為類圖:
上一篇:Delphi中判斷文件是否為文本文件的函數(shù)
欄 目:Delphi
本文標(biāo)題:插件管理框架 for Delphi(一)
本文地址:http://mengdiqiu.com.cn/a1/Delphi/8667.html
您可能感興趣的文章


閱讀排行
本欄相關(guān)
- 01-10在Delphi實(shí)現(xiàn)在數(shù)據(jù)庫中存取圖像的圖
- 01-10delphi建立、讀取、存貯INI文件的方法
- 01-10delphi 正弦曲線圖
- 01-10Delphi Command模式
- 01-10delphi建立、讀取、存貯INI文件的方法
- 01-10插件管理框架 for Delphi(二)
- 01-10插件管理框架 for Delphi(一)
- 01-10Delphi中判斷文件是否為文本文件的函
- 01-10delphi中一個(gè)值得大家來考慮的DLL問題
- 01-10初探Delphi中的插件編程
隨機(jī)閱讀
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文