基于MFC框架插件模式
2015-07-25 19:42
288 查看
今天终于完成基于MFC框架的插件模式1.0版本,后续使用中再完善
使用插件目的:减少模块之间的依赖,便于程序功能扩展维护。
实现方式:
1、所有接口直接或间接继承CObject,只支持单接口继承。
知道类名后,所有接口实例可以使用CRuntimeClass::CreateObject()创建
2、支持MFC单文档,多文档,对话框。框架插件接口目前只有一个函数
BOOL OnPluginEvent(int nEvent,CObject* pFrame);
可以动态增加菜单,工具条等
为了方便以后修改接口,采用IDispatch接口调用方式,可以部分实现接口函数。
COleDispatchDriver dispatch;
static BYTE parms[] = VTS_I4 VTS_I4;
dispatch.InvokeHelper(1,DISPATCH_METHOD,VT_EMPTY,NULL,parms,nEvent,pSender);
3、多模块之间传递变量
1、单一实例
2、支持接口查询,定义通用接口类,增加接口名称获取
4、DLL模块的事件响应
继承CCmdtarget
5、CWnd控件功能扩展
采用SubClassWnd方式。
使用插件目的:减少模块之间的依赖,便于程序功能扩展维护。
实现方式:
1、所有接口直接或间接继承CObject,只支持单接口继承。
知道类名后,所有接口实例可以使用CRuntimeClass::CreateObject()创建
2、支持MFC单文档,多文档,对话框。框架插件接口目前只有一个函数
BOOL OnPluginEvent(int nEvent,CObject* pFrame);
可以动态增加菜单,工具条等
为了方便以后修改接口,采用IDispatch接口调用方式,可以部分实现接口函数。
COleDispatchDriver dispatch;
static BYTE parms[] = VTS_I4 VTS_I4;
dispatch.InvokeHelper(1,DISPATCH_METHOD,VT_EMPTY,NULL,parms,nEvent,pSender);
3、多模块之间传递变量
1、单一实例
2、支持接口查询,定义通用接口类,增加接口名称获取
4、DLL模块的事件响应
继承CCmdtarget
5、CWnd控件功能扩展
采用SubClassWnd方式。
相关文章推荐
- 编码风格
- 面向对象4
- 笔记
- android studio上imageloader初探
- 面向对象3
- Spring AOP 异常:IllegalArgumentException: error at ::0 can't find referenced pointcut
- Ubuntu中查找与Launcher图标所对应的命令
- hdu 4284——Travel
- 面向对象2
- Struts2的配置文件——web.xml
- 编程领域感悟
- xcode调试命令
- java之可变参数
- 与阿根廷一起学习Java Web四个发展:对于信息传输和信息传输
- ECharts学习总结(五):echarts的Option概览
- java之可变参数
- 面向对象1
- 一道小小的内存申请面试题
- bloom filter
- 深入剖析Android四大组件(一)——Activity生命周期详解