用DLL方式封装MDI子窗体是一种常用的软件开发技术,它的优点:
- 开发人员可以负责某一个模块的编写包括(界面+逻辑),可以互不干扰,模块开发完成后,主程序统一调用。
- 易于程序升级,当程序升级时,不用编译主exe文件,更新某个DLL就可以升级。
- 可以根据客户不同的需求、价钱给他们不同的模块。(奸商都愿意用这招)
最近用到这个技术,因为小弟没有用过,在网上google了一下,对它有了了解,我用的是基于COM的DLL,下面总结如下:
想在DLL中封装MDI子窗体,要注意以下几点:
- 你的DLL中的接口要有两个参数:第一,主程序的Application对象;第二,主程序窗体对象;
- 你要重写DLL入口函数
- 如果是基于COM的,要注意:因为COM没有TApplication和TForm类型,你在传入时需要强转为Integer。
需要注意的就这么多,下面结合例子看看(假设你已经建立了工程):
TComDllTest1 = class(TAutoObject, IComDllTest1)
Private
FMsgStr: WideString;
function GetMDIFo