看来月末升星计划要泡汤了,散点技术分庆贺元旦吧,大家都来顶吧

Elysium 2006-12-31 09:44:02
一个应用程序,对应若干功能模块,以DLL形式动态加载,对于每个DLL对应一组菜单,这种菜单是在dll中好呢,还是在应用程序中好?界面如何维护?关系又怎么组织?

有经验的朋友给指导一下好吗?3Q
顺祝元旦快乐!!!
...全文
606 79 打赏 收藏 转发到动态 举报
写回复
用AI写文章
79 条回复
切换为时间正序
请发表友善的回复…
发表回复
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
我的 msn programeMan@hotmail.com
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
我加你们了
Elysium 2007-01-04
  • 打赏
  • 举报
回复
sorry,刚回来
xpgg@msn.com
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
Elysium(東鱗覀爫)

留下 msn 吧
Elysium 2007-01-04
  • 打赏
  • 举报
回复
那小子就恭敬不如从命了
各位有更多想法的人也可以继续畅所欲言,不过不给分了哦 -:)
teli_eurydice 2007-01-04
  • 打赏
  • 举报
回复
交个朋友,呵呵,有机会再讨论下子,呵呵
teli_eurydice@msn.com
qq: 22826895
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
呵呵 看来大家都是有想法地,只不过上这里来求证来了

刚升星星那小子(楼主)

该结帖了吧 呵呵
teli_eurydice 2007-01-04
  • 打赏
  • 举报
回复
我的想法基本和你一样,其实应该说你的思想就是COM 中的 IDL,不过我想插件系统应该都是这个样子了,呵呵。一处声明,到处使用
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
to Elysium(東鱗覀爫)

是吗? 我还真不知道,不过看来是可行的。

to teli_eurydice(哭泣的仙人掌。。。。)

说说你的想法,你打算怎么实现?
Elysium 2007-01-04
  • 打赏
  • 举报
回复
ProgrameMan所说的基本就是现在流行的那些商业动态链接库模式,给出函数接口调用就行,比如一些语音卡啊,图像采集卡啊,BCGPro Control什么的
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
dll 中实现 IStream
框架中只要有 IStream 的声明即可
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
例如 dll 中有一个 api

class IStream
{
public:
virtual int read() = 0;
virtual boo write() = 0
}

IStream *get_interface_obj();

ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
我说的以 win32 api 形式提供是为了说明他不是 MFC 扩展 dll 也不是 com 之类的 dll 而是
标准 api 形式的 dll ,会不会走面向过程的老路我个人认为是看怎么实现它,我考虑的是关键性的接口采用 api 函数导出,例如 getinterface 之类,其它真正的接口采用接口的方式这样通过 getinterface 之类的关键api函数是可以构建给予面向对象的系统。
teli_eurydice 2007-01-04
  • 打赏
  • 举报
回复
to ProgrameMan(我要学汇编)

如果像你说的那样 使用 win32 api 的形式提供插件,会不会走面向过程的老路了啊,呵呵

解释一下你们的 win32 api 的形式提供插件 是个什么意思
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
to teli_eurydice(哭泣的仙人掌。。。。)

1. 主要是我们的程序对性能要求比较高,所以 com 不是很合适
2. 跨平台(目前不是主要的原因,我也不知道什么时候需要垮平台 呵呵)
3. com 比较大,我们的程序要求尽量的小
4. com 的接口一旦发生变化应用起来比较麻烦(比如增量式升级(当然com 可以采用增加接口的方式来改变原有的接口))
5. com 容易被别人拿到其它的项目中使用,而 api "相对"复杂一些

所以...

这仅是我个人观点,并没有说 com 不好,大家不要砸我啊,我觉得用什么不用什么是根据具体项目的不同具体对待的。
teli_eurydice 2007-01-04
  • 打赏
  • 举报
回复
如果这样的话,可以在主程序加载主菜单,然后每调用一个dll,在主菜单插入一个菜单项,比如“DLL1”,“DLL2”,根据每个dll再载入DLL资源菜单,这样,每成功载入一个DLL,就会在主菜单上增加一列菜单项


这样是可以,我说过用界面库的很简单,呵呵

现在有个关键问题,怎么样采用 插件 + 命令模式的方式,像下面的一样

http://www.mengyan.org/blog/archives/2005/09/09/68.html

teli_eurydice 2007-01-04
  • 打赏
  • 举报
回复
to ProgrameMan(我要学汇编)

解释一下你为什么不用COM,呵呵,我也在做和你类似的插件系统,只是我感觉提供形式并不是最主要的,关键是借口抽象,易于使用,用 MFC 难度有点大, c# 就简单多了
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
因为最近我也有一个程序需要你说的类似特征,我将其定位于

框架、插件的范畴,经过一番考虑,我打算放弃 com 使用 win32 api 的形式提供插件。
ProgrameMan 2007-01-04
  • 打赏
  • 举报
回复
to Elysium(東鱗覀爫)

不,是标准的 win32 dll
alexmayer 2007-01-04
  • 打赏
  • 举报
回复
帮顶
加载更多回复(59)

15,471

社区成员

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

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