我现在用vc做一个类似java微内核的软件框架,大概情况如此:软件框架(EXE)是一个容器,它加载动态库形式的插件(构件),软件框架动态创建并管理视图、菜单、面板等界面元素,框架将这些资源句柄设给插件,视图、菜单、面板也是一个空容器,实际内容由插件填充。
再说说插件,我打算分为两类,一类是基础插件,能够提供一些功能和接口给其他插件使用。另一类是应用插件(业务插件),只有一些功能,它可能使用基础插件提供的功能,也可以不使用。举个例子,加入我们把WORD封装成基础插件,它可以提供一些接口供外部调用其功能,再有一个叫做信息查询的插件,它可以使用Word接口向目前打开的文档当前位置加入一段文字,WORD选中文档中一些文字,也需通知各插件当前选中的信息,删除一些文字也要通知。用这个例子说明插件之间有交互,而且基础插件是很多插件公共的插件,业务都围绕它进行。
软件框架类似java的PlatForm(不知道是否准确,暗一直在vc下混),框架是可扩展的,添加新插件后框架无需重新编译,尤其是添加基础插件,我已经实现了添加应用插件无需重编译。最好插件之间不是平行的,插件可以加载其他插件,也像微内核,能保证插件之间关系如同框架与插件的关系(这个最不好实现)。具体一点问题吧:1)基础插件如何设计公共操作接口最好(例如提供WORD操作接口),我目前用IDispatch派生,并做了应用代理,通过代理向其他应用发送消息,不知行得通不;2)如何设计框架的接口,让插件获取后也能让该插件也具有微内核特性。3)添加一个基础插件,假设基础插件提供公共操作接口,还发布了代理,框架需要重新编译吗?……其他问题罗列一下以后再问吧!
类似java微内核的软件框架
最新推荐文章于 2026-06-17 10:40:45 发布
本文探讨了使用VC开发类似Java微内核的软件框架的设计思路。框架负责加载插件并管理界面元素,插件间可通过接口进行交互。文章讨论了如何设计基础插件的公共操作接口及框架接口等问题。

2199

被折叠的 条评论
为什么被折叠?



