songchuanfang
29917
|
2007/6/11 10:28:51 |
我用delphi写xml,encoding='GBK' 结果生成出去的xml里面却变成了utf-16 不知道什么原因 http://www.blogjava.net/badboyryan/ |
maxyang
29716
|
2007/5/30 15:12:49 |
学习.... thank you |
hnxxcxg
29355
|
2007/5/12 13:14:02 |
jueschen,和我一样,无疑关注的是插件框架了 正在研究中。。。 欢迎共同讨论 |
jueschen
29326
|
2007/5/10 11:11:08 |
如果dll中封装了多个窗体,有几个菜单又怎么实现呢?我见过将一组菜单封装起来的程序,不过不知应该怎么实现? |
hnxxcxg
29318
|
2007/5/9 18:31:19 |
以后要增加其它新的功能的话,只要把新功能封装成一个DLL方式的插件,然后将这个新生成的*.dll文件放置在plugins目录下即可,而不需要对主程序作任何的修改或是重新编译主程序,只要重新运行主程序,你将会看到新增加的功能(子程序)已经自动的在主程序的相应菜单项下增加了子菜单项目,现在只要点击增加的菜单项,就能执行新增加的功能了。这样,对程序的升级来说是不是很方便呢。如果以此种方式来组织架构一套MIS系统,不也是很方便吗?
插件,一种程序设计的即插即用的艺术。 |
wuqvei
29316
|
2007/5/9 13:54:47 |
除了加了菜单处理 没觉得与调用普通DLL有什么区别,请指教程序实现的插件的奥妙在哪 |
hnxxcxg
29315
|
2007/5/9 12:12:05 |
插件可是MS的技术,rencaicgy139 演示而已,nevergrief,别的可以自己加嘛 你们都看了,我要请问下: 如何实现插件的安全管理? |
nevergrief
29307
|
2007/5/8 19:18:13 |
可是dll还不是一样要重新编译并发给客户?这样与更新主程序有什么区别?dll的主要功能是重用以及模块化! 在楼主这个例子里没有得到明显的体现! |
rencaicgy139
29303
|
2007/5/8 14:35:39 |
这个例子早就看到过,是个抄袭 |
profhuang
29297
|
2007/5/8 11:54:47 |
不错! 请问一下,为什么打开的窗口变成响应式的了,这样就没有办法同时打开多个plugins的窗口了。 |
hnxxcxg
29294
|
2007/5/8 9:31:46 |
呵呵,下次一定自己填写发布资料。原来不晓得呀。请见谅。 |
zizii
29290
|
2007/5/8 7:37:18 |
下次自己到http://www.2ccc.com/uploads.asp填写发布资料啊,你最懒了,每次都要我帮你写,体谅一下啊,累死站长盒子就没有了哦。 |
hnxxcxg
29282
|
2007/5/7 20:53:47 |
盒子的更新速度真的很快,建议大家有好的作品就发布到盒子上面 |
hnxxcxg
29281
|
2007/5/7 20:50:17 |
对于一般用户来说,插件就是一个DLL文件,但与一般DLL不同的是,插件支持对主程序功能的扩展,主程序没有插件也一样能运行,但一般的DLL大多数是主程序不可缺少的部份。当需要经常为客户更新应用程序版本时,插件也许是你不错的选择。
设计思想 主程序每次启动时,在plugins目录下查找所有的*.dll文件(一个*.dll文件就是一个插件),可以同时安装多个插件,数量并无限制,然后将这些插件自动加入主程序的某个菜单项下。
设计插件就预先约定好接口函数,这样才可以方便主程序调用插件,然后将预先约定好的接口公布,以后的程序员只要按此接口编程,便可以调用相应的插件程序。在本例子中,有两个接口函数: function GetCaption: pchar; stdcall; function ShowDLLForm(ahandle: thandle; acaption: string): boolean; stdcall;
以后要增加其它新的功能的话,只要把新功能封装成一个DLL方式的插件,然后将这个新生成的*.dll文件放置在plugins目录下即可,而不需要对主程序作任何的修改或是重新编译主程序,只要重新运行主程序,你将会看到新增加的功能(子程序)已经自动的在主程序的相应菜单项下增加了子菜单项目,现在只要点击增加的菜单项,就能执行新增加的功能了。这样,对程序的升级来说是不是很方便呢。如果以此种方式来组织架构一套MIS系统,不也是很方便吗?
插件,一种程序设计的即插即用的艺术。 |