社区
进程/线程/DLL
帖子详情
如何用VC2005 express开发插件系统?
zhangyaoqi_17
2008-10-09 10:57:12
需要做一个插件管理器,类似photoshop里面那种,哪位大侠做过或者是有相关资料啊?
我在网上找了找,大部分都是用MFC。有没有能用vc2005、2008express开发的资料?
或者有开源库也行,就像
http://www.codeguru.com/cpp/misc/misc/plug-insadd-ins/article.php/c7159/
...全文
209
3
打赏
收藏
如何用VC2005 express开发插件系统?
需要做一个插件管理器,类似photoshop里面那种,哪位大侠做过或者是有相关资料啊? 我在网上找了找,大部分都是用MFC。有没有能用vc2005、2008express开发的资料? 或者有开源库也行,就像 http://www.codeguru.com/cpp/misc/misc/plug-insadd-ins/article.php/c7159/
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
clever101
2009-09-25
打赏
举报
回复
先做个标记,以后和楼主一起研究。
zhangyaoqi_17
2008-10-27
打赏
举报
回复
虽然与问题没什么关系...不过谢谢帮顶
以下是自己研究的结果。读了notepad++的代码和一些codeguru的文章,归纳起来,有以下几种常见的插件设计方法。
1.就是普通的dll,规定一个调用函数,比如dosth(Param *)。插件接口很死,若是扩展起来,函数的罗列看起来也很傻。比如要传递的参数很复杂的话,那么Param结构肯定复杂无比,体积也会随着功能的增加而庞大。优点是实现简单,通俗易懂。适合没什么大变化的小软件。
2.在1的基础上加以改进,定义一个基类plugbase,里面定义几个纯虚函数。只定义一个接口函数,比如createplugObj(),返回一个新建的plugin对象。如果要新建一个插件,只要从基类继承并重载这几个函数即可。EXE调用DLL,然后执行createplugObj(),通过产生的对象,调用其中的只要函数和成员。优点是接口清晰,将参数封装在积累中。创建了插件对象后,不需要每次传递参数都新建一个参数对象
3.学习notepad++的做法,通过发送窗口消息来实现。这是最灵活的做法,但是稍微有点绕。主要原理就是通过DLL获得EXE的句柄,发送自定义windows消息。然后用winmsg携带in和out参数。优点是,采用事件机制,将不同API所需要的参数各自定义,保证了每条消息耗费的资源最少。同时,事件机制可以保证同一时间多个插件获取该事件后,采取不同的操作。
具体的实现,大家可以参照notepad++的源代码。在sourceforge上有。看其中的pluginmgr类。
4.灵活到极点的做法。就是Eclipse的设计。除了基本框架是固定之外,其他任何东西都是插件。框架提供插件和插件之间操作的桥梁。
鉴于该设计复杂难名,与自己设计的初衷不一致,没有细研究。大家有兴趣可以看看孟岩的blog,或许有点帮助。
最终我采用的是第二种方法,主要原因是第三种方法,win32和.net CLR之间消息通讯涉及到托管和非托管的问题,比较绕。而且开发插件的人员编程能力不是很高,可能会无法理解消息机制。参数的操作也会稍有难度。
希望这个结论对别人会有帮助。我的email' natzhang@163.com。欢迎一起交流学习。
beck_zhou
2008-10-10
打赏
举报
回复
http://www.diybl.com/course/3_program/vc/vc_js/2008623/127629.html
配置Eclipse+MinGW
开发
C/C++程序
但是也许是因为对配置不够熟悉的缘故,配置起来非常痛苦,使用起来也觉得特别别扭,所以最后还是不得不换用了
VC2005
Express
。Eclipse3.3的下载页面中,针对不同的
开发
人员提供了不同的下载包。其中“EclipseIDEforC/...
Visual.Assist.X10.5.1727.0
<br>Visual Assist X是一款非常好的Microsoft Visual Studio 2005和Visual Studio .NET
插件
,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、
系统
函数、成员变量、自动给出输入...
Visual.Assist.X10.0.1246.0
<br>Visual Assist X是一款非常好的Microsoft Visual Studio 2005和Visual Studio .NET
插件
,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、
系统
函数、成员变量、自动给出输入...
Visual assist X 1626(带注册机)
Visual Assist X是一款非常好的Microsoft Visual Studio 2005和Visual Studio .NET
插件
,支持CC++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、
系统
函数、成员变量、自动给出输入提示、...
Whole.Tomato.Visual.Assist.X.10.6.1823 2010年6月最新破解版
Visual Assist X是一款非常好的Microsoft Visual Studio 2005和Visual Studio .NET
插件
,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、
系统
函数、成员变量、自动给出输入提示、...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章