COM还不止这些,包容和聚合可以很方便的重用代码,线程公寓让客户与组件的线程独立出来,连接点使客户与组件的交互更为直观,可执行组件可以建立更为健壮的松散耦合模块,MTS,异步组件,消息队列,队列组件等可以方便开发分布式系统。另外,COM+把这些东西揉合起来,让开发别的更加直接容易。
解决方案 »
- HANDLE无效的返回值
- dll里分配内存的问题
- ADO+ACESS数据库统计时间段2008-9-9到2008-12-12,SQL怎么实现?
- 如何快速更新顶层父窗口?
- 对话框窗口如何分割?高手给一个例子!!
- 如何作:一个函数运行(一段时间)后,自动调用另一个函数。
- 如何打开指定目录下的位图文件,并在DC中显示?
- 各位帮忙!
- 在线...LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
- 请问怎样得到win2003的版本,我市这样做的
- 一个线程的问题.
- 微软公开“CLI”与“C#”的源代码,但限定研究目的
COM接口的设计意图是实现二进制级的程序复用而产生的。
直接用class或函数是属于源码级的复用,这两个方向不可相提并论。
*************************************************************> 如果是为了从C++中调用还真不如搞成dll方便,dll也可以搞成类的形式,当然有时候操纵别的程序如Word等,不得不用ComCOM的设计目的之一:为了让C++调用方便
不同的C++编译器,实现方式不一样。dll解决了C语言的二进制共用问题,但连命名方式,几乎每个C++编译器都不一样,更不用说类的二进制布局了。> 让VB或其他的语言方便调用为了让VB等其它语言方便调用,COM增加了IDispatch接口,以便不支持VTable的语言可以调用。
不支持IDispatch接口的COM对象,VB等不支持VTable的语言几乎是很难调用(对于一般人而言是不可能调用得来的)
因此首先COM接口不是为方便VB而产生的。
如非必要,我一般不这么做,毕竟麻烦嘛,而且有时会影响可读性。
不过我的意见仅供参考,不要被我误导。
我想知道大家在使用COM的时候,有多少是出于软件工程的角度?有多少是因为别的模块用了COM相关技术,自己不得已才使用COM?