关于COM,郁闷中

ylm163net 2002-03-08 07:58:31
问题一:
关于进程内COM对象,一个dll含一个com对象好,还是多个com对象好
问题二:
对于不同功能组,是新创建一个接口,还是新建一个com对象
问题三:
一个COM对象内,创建多接口,各个接口之间函数无法同名

请关注,你知道多少就谈多少

...全文
101 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylm163net 2002-04-13
  • 打赏
  • 举报
回复
ylm163net 2002-04-12
  • 打赏
  • 举报
回复
经过痛苦的思考,我决定,一个Com对应一个dll,
尽管这样dll很多,加载时效率可能有点低,但这样
的灵活性最大,如果为了方便,也可用组件管理器打
包成套件,
bitfan 2002-03-18
  • 打赏
  • 举报
回复
第一和第二个问题根本就没有答案,关键要看具体情况。
至于第三个问题,是由C++多重继承机制引发的。BCB的COM组件编程封装的是M$的ATL 3.0,采用的是C++多重继承机制,所以存在这个问题。
同样的问题MFC采用嵌套类的方法解决。
所以,如果非要在不同接口间有同名函数,那就只好用MFC了。
aawolf 2002-03-18
  • 打赏
  • 举报
回复
建议你去看COM本质论,关于定义接口还是定义新的组件,上边说的很好。
robinsun 2002-03-18
  • 打赏
  • 举报
回复
关注!
flyingdiablo 2002-03-11
  • 打赏
  • 举报
回复
学习:)
kingcaiyao 2002-03-11
  • 打赏
  • 举报
回复
我个人认为COM最大的特点就是与编程语言的无关性,每个COM接口都必须以语言无关性来给出GUID,COM对象对外表露了一接口,这个接口又提供方法(函数)以供其它应用程序调用,当另一个应用程序试图获得COM服务器对外表露的接口时,它就求助于OLE,OLE启动COM服务器,并返回IUNKNOWN类型的接口,它是所有接口的基类,客户程序调用QUERYINTERFACE函数就获得该接口,COM规定客户程序不管理内存,客户只是通过OLE获得COM对象的指针,当客户程序不再需要时,就调用release方法将其释放,服务器端维护该接口的引用计数,每当客户调用AddRef函数时,计数就加1,调用release时,引用计数就减1,C++ Builder使用ATL来管理服务器,接口和类实际是差不多的,只是它们的方法都是纯虚的。至于各个接口之间的函数是否可以同名,这个我没有试过。
对不同的功能组,我个人意见应该新建一接口,关于进程内的COM,我认为一个COM对象要好。
lovelysmart 2002-03-11
  • 打赏
  • 举报
回复
注意,关注此话题,我正在研究,希望大家踊跃发言
ylm163net 2002-03-11
  • 打赏
  • 举报
回复
假如我有一个接口,姑且命名为Interface1
在该接口下,我声明一个方法
Method1(p1,p2);p1,p2为形参
在创建一个接口Interface2
声明方法
Method1(p1,p2)
你会发现,Method1(p1,p2)的实现声明

你无法同时定义
Interface1.Method1
Interface2.Method1
sunspot_lee 2002-03-11
  • 打赏
  • 举报
回复
一、都可以。一般把同时用的COM对象放在一个DLL里,以减少加载的开销。
二、新的功能组当然用新的接口,至于用不用新的对象实现,看新的功能与老功能组的相关程度,没什么关系的话就用新的对象实现吧。
三、?不明白你的意思。
ylm163net 2002-03-10
  • 打赏
  • 举报
回复
可以讲讲你自己的创建原则,不一定要有道理,
因为这个话题讨论的人太少,大家不妨谈谈,
交流交流
三杯倒 2002-03-09
  • 打赏
  • 举报
回复
我也刚刚接触COM,不是很懂!
inside COM
三杯倒 2002-03-09
  • 打赏
  • 举报
回复
COM创建的是介面interface吧
ylm163net 2002-03-09
  • 打赏
  • 举报
回复
up 帮帮忙
ylm163net 2002-03-08
  • 打赏
  • 举报
回复
up
ylm163net 2002-03-08
  • 打赏
  • 举报
回复
这些问题我想了好久好久,就是没有结果,
也没有哪本书详细地讲过,所以我现在很
少看书,感觉大家都是操别人的,真正实
质性的东西却没有
我不懂电脑 2002-03-08
  • 打赏
  • 举报
回复
1好想这个是由bcb决定的。
2如果功能组相关,新创建一个接口

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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