Tuesday, May 22, 2007

使用DLL制作插件程序 - Delphi园地

程序在BDS2006下编译通过。

相信各位应该都用过WinAmp,也相信它对插件的支持是它最终流行起来的主要原因。能不能让我们自已的程序也支持插件呢,以面我们就用Delphi来为我们编第一个支持插件的程序。

对于一般用户来说,插件就是一个DLL文件,但与一般DLL不同的是,插件支持对主程序功能的扩展,主程序没有插件也一样能运行,但一般的DLL大多数是主程序不可缺少的部份。当需要经常为客户更新应用程序版本时,插件也许是你不错的选择。

设计思想
主程序每次启动时,在plugins目录下查找所有的*.dll文件(一个*.dll文件就是一个插件),可以同时安装多个插件,数量并无限制,然后将这些插件自动加入主程序的某个菜单项下。

设计插件就预先约定好接口函数,这样才可以方便主程序调用插件,然后将预先约定好的接口公布,以后的程序员只要按此接口编程,便可以调用相应的插件程序。在本例子中,有两个接口函数:
function GetCaption: pchar; stdcall;
function ShowDLLForm(ahandle: thandle; acaption: string): boolean; stdcall;

以后要增加其它新的功能的话,只要把新功能封装成一个DLL方式的插件,然后将这个新生成的*.dll文件放置在plugins目录下即可,而不需要对主 程序作任何的修改或是重新编译主程序,只要重新运行主程序,你将会看到新增加的功能(子程序)已经自动的在主程序的相应菜单项下增加了子菜单项目,现在只 要点击增加的菜单项,就能执行新增加的功能了。这样,对程序的升级来说是不是很方便呢。如果以此种方式来组织架构一套MIS系统,不也是很方便吗?

插件,一种程序设计的即插即用的艺术。

{
Copyrigh 咏南工作室
Author HNXXCXG(大富翁)
QQ 254072148(咏南)
Email hnxxcxg@yahoo.com.cn
Date 12:39 2007-5-7
ToDo
}

No comments:

如何发掘出更多退休的钱?

如何发掘出更多退休的钱? http://bbs.wenxuecity.com/bbs/tzlc/1328415.html 按照常规的说法,退休的收入必须得有退休前的80%,或者是4% withdrawal rule,而且每年还得要加2-3%对付通胀,这是一个很大...