基于插件式开发的软件项目(二)

基于插件式开发的软件项目(二)

在这一个篇幅里,我主要是讲诉关于dll中实现的插件式开发,在接下来会讲诉COM,ActiveX等方式实现的方案。

首先要开发一个基于插件式开发的软件系统,最重要有3点:

1.定义接口结构一个具有预见性的接口能为减少后期维护。通过统一的程序接口来调用不同的模块,以实现不同功能,或者扩充主程序的功能。使应用灵活,可以为程序增加新的功能或者升级部分功能,而主程序不需要重新编译和连接。

2.应用程序中的实现结构WindowS平台上一般表现为一个可执行的文件(一般为exe文件),这个可执行文件负责启动整个系统,将插件系统所需的插件加载到自己的进程地址空间中,插件系统所需要的插件是一些服务性的插件,常驻进程之中。宿主程序还必须对插件进行管理,不同产品的服务性插件的设计都不完全相同,但是对插件进行管理的功能是一定要实现的。

3.
插件:能够动态地插入到系统中,提供给插件系统相对简单的功能,但是多个插件能够使系统功能完善,完成许多复杂功能的处理,是插件系统的重要组成部分。在插件中必须提供给宿主程序调用的接口,当宿主程序需要调用插件的时候能够找到这个接口,以完成与宿主程序的通讯与交互,并且使得宿主程序能够得到插件的相关信息。

下面是我做的一个小型数据库系统:

系统总体架构:

基于插件式开发的软件项目(二)

软件运行时的状态:




基于插件式开发的软件项目(二)接下来是正题了,实现Plug-In的途径。1.多以动态加载不同的DLL来实现。理由是DLL会映射到当前进程的地址空间中去,这样DLL可以和当前进程方便的进行数据和信息的共享。

下面是插件框架的工作流程图:

基于插件式开发的软件项目(二)

简单来说分为4个步骤:寻找插件,在这里主要XML实现,方案有很多种,看具体需求。装载,验证有效性(主要是为了检测该插件是否为合法插件,也就是说防止加载别人的恶意程序);在主界面上显示(菜单,对话框,树形控件等)实现插件的功能安全卸载天色已晚,今天暂时写那么多先,接下来我会用C++讲诉剩下的内容,还是那句话~我只是一个大三的学生,如果有什么写的不好不对的地方,希望各位指导!谢谢!





原文链接: https://www.cnblogs.com/LiWenLong/archive/2011/01/17/1937032.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/20200

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午9:38
下一篇 2023年2月7日 下午9:39

相关推荐