Delphi/BCB 开发插件架构程序(连载一)

Delphi/BCB 开发插件架构程序

开发插件架构的应用程序是很多人想做的,插件架构的好处是不言而誉的,可以通过增加不同的插件,从而可以增加应用程序的性能,同时也便于将一个大的任务进行分解,由不同的人开发不同的部分(做成插件形式),然后再组合成一个完整的应用程序。最典型的应用如PhotoShop软件,众所周知,PhotoShop软件通过加载不同的插件极大的扩展了PhotoShop的功能。目前从技术上来讲,开发插件架构一般都是使用COM技术或是类似于COM技术开发,而C#语言通过反射功能实现插件架构也是非常方便的,下面我主要讨论在BCB中,如何不通过真正的COM,使用Delphi/BCB提供的包(Package)技术来开发插件架构。

一,         PackageDLL的区别

在网上看到很多朋友询问PACKAGEDLL的区别,下面我想谈谈我的理解,PACKAGE方式编写的程序,程序中的类在整个进程空间中是一致的,而DLL方式编写的类,在整个进程空间中是不同的,举例来说,假设在主程序(EXE)中和DLL中同时使用VCLTFont,DLL中假设存在一个函数:

void __stdcall AssignFont( TFont* pFont)

{

   DllFont->Assign( pFont ) ;

}

   如果我们在主程序中调用这个函数,就会出错,这是因为主程序中的TFontDLL中的TFont实际上是两个不同的类,虽然这两个类的名称、定义是完全一样的。而如果是用Package方式开发,则完全没有任何何问题,而DELPHI/BCB均使用Package方式来开发自身,从而可以实现将不同的VCL类库封装在不同的BPL包中。DLL文件的后缀名是.DLL,Package文件的后缀名是.BPL,Package文件可以理解为BORLAND公司推出的专用DLL格式,但是拥有比DLL更强大的扩展能力。

二,         插件架构要实现的功能

完整的插件架构需要完成以下的功能:1,界面UI的增强或改变(Package包的应用);2,软件功能的扩展能力;3,发现新功能的能力(通过类似于COM的接口实现)

未完待续….

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值