欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

插件管理框架 for Delphi(一)

 更新時(shí)間:2008年03月15日 18:14:46   作者:  
插件管理框架 for Delphi許多軟件采用“插件”(PlugIns)來擴(kuò)展其功能,比如PhotoShop所支持的各類濾鏡就是插件;我們所熟知的Winamp,也有許多皮膚以及可視效果插件。再有微軟的windows media player,以及QQ,沖浪軟件Opera……采用插件技術(shù)的軟件數(shù)不勝數(shù),而各個(gè)軟件的具體實(shí)現(xiàn)方式也是五花八門,各有特點(diǎn)。

插件技術(shù)的出發(fā)點(diǎn)主要是為了使軟件能夠靈活地進(jìn)行擴(kuò)展功能,而不需要對(duì)主程序(框架程序)進(jìn)行重新編譯和發(fā)布。它的原理相當(dāng)簡(jiǎn)單。軟件的功能由框架程序和插件來決定。在框架程序和插件之間具有一個(gè)特定的接口,它們兩者須通過這個(gè)接口來傳遞數(shù)據(jù)或控制信息,以實(shí)現(xiàn)軟件功能。因此,只要符合該接口的程序(或其他功能實(shí)體),就稱為該框架程序的插件。
插件實(shí)體一般分為兩種,一種是包含邏輯的程序,比如動(dòng)態(tài)庫(kù)、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í)體。
以下為類圖:

相關(guān)文章

最新評(píng)論