插件式框架设计问题

Qlaiaqu 2009-07-28 06:58:59
各位好:
我现在有个设计难点。我想通过dll导出一个对话框,然后作为一个插件的形式将其插入到主程序中,主程序发现这个插件之后,将此插件的启动项目加入到菜单中去。当点击菜单中对应的那一项时,这个从dll中导出的对话框就出现了。请问有没有比较
比较方便的方法来实现这个想法了?
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
emailqjc 2009-08-19
  • 打赏
  • 举报
回复
关注
Qlaiaqu 2009-07-28
  • 打赏
  • 举报
回复
哈哈,谢谢上面各位,结贴派分了
s393658806 2009-07-28
  • 打赏
  • 举报
回复

mark
xwsn007 2009-07-28
  • 打赏
  • 举报
回复
结帖吧,这个绝对满足你的需要,我们在项目里已经应用了这种技术,效果很好!
http://www.codeproject.com/KB/library/piarchitecture.aspx
oyljerry 2009-07-28
  • 打赏
  • 举报
回复
dll实现统一的接口,exe首先查找目录下的dll,然后根据当前dll等,动态的创建对应的菜单等,同时建立菜单和对应dll等的关系,当点击对应菜单时,调用dll统一的接口,从而弹出对话框。
这样就可以比较灵活的动态插入和卸载多个dll
marrco2005 2009-07-28
  • 打赏
  • 举报
回复
这个我做过。
exe预先分配一部分 ID(ID_START,ID_END) 给 dll 插件,并定义一个map,用于记录分配给dll的命令ID 与回调函数的对应关系

然后exe调用dll的接口,通知dll注册自己的界面
dll将一个函数回调地址传给exe,exe生成一个命令ID,并将这一对值存入map


接着 exe 修改菜单,将分配的ID附加到菜单上

然后 exe 用 ON_COMMAND_RANGE( ID_START, ID_END ...) 响应消息

在 exe 消息响应函数中, exe 查找 map,在找到对应的函数回调地址,调用该函数。

最后在dll的回调函数中,做你想做的事情就行了




15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧