COM+中"分发/订阅"和"客户/服务"比较起来
其中"分发者"是相当于什么角色,客户还是服务而事件模型与订阅者又是什么样的一种关系?
其中"分发者"是相当于什么角色,客户还是服务而事件模型与订阅者又是什么样的一种关系?
解决方案 »
- 大神求救,CReBar 控件的装载问题!(间距过大和大小被改变)
- 一个关于指针指向对象的问题!
- 求在CWnd继承类中实现scroll bar的思路
- 无法定位程序输入点,怎么解决?
- 请问WINDOWS HOOK可以在以main函数为进入点的console程序中使用吗?需要什么初始化吗?
- 注册表权限
- 请问一个SDK的问题?
- ————————————我工具栏怎么和VC的不同,哪位大侠进来看看,在线等!!!!————————————
- 实现鼠标在视图和用非模式对话框交互绘图
- ※※※直接从对话框打印的问题,高手快来!※※※
- 关于IE地址栏保留历史记录的问题
- 奇怪的问题,二十万火急,COM高手help!!!!!!!!(最后70分,不要嫌少啊)
然后订阅者向COM+订阅一些服务。COM+负责在分发者分发的服务中寻找时候要别人订阅的服务,如果有,COM+就会透明的方式得到该服务,然后通知订阅者事件模型是COM+以前的事
一个都不懂!
> 书名:《COM技术内幕》
> 英文原名:《Inside COM》
> 作者:(美)Dale Rogerson
> Microsoft Press 1997
> 中文译者:杨秀章
> 清华大学出版社 1999年3月第1版
> 定价:50.00元(带光盘)
> Microsoft Press的《Inside ……》(翻译成中文就是《……技术内幕》)系列
> 书籍似乎总保持着独到的权威性,很少让人失望。从《Inside OLE》到《Inside
> Visual C++》,都十分受到读者的欢迎,名声极好。《Inside Visual C++》称的
> 上是深入浅出的典范,大师的语言以及清楚的思路都让人收益非浅。但是可能是
> 由于名字的原因,很多想学Visual C++的人面对这本厚厚的大作的时候,多少总
> 有些胆怯,担心自己看不懂。少勇认为,只要你具有了一些C++的基本知识(有
> WIN32的概念更好),学这本书就不难,当然毅力是克服困难的秘方。
> 《Inside COM》也称的上是一本难得的上乘之作,这本书的最大特点在于语言轻
> 松、循序渐进,在选材和结构组织上不难看出作者着实是煞费了一番苦心。为了
> 把"门槛"设得低一些,作者在前几章尽可能地回避了很多诸如类厂、注册表等难
> 点和细节问题,集中"优势兵力逐个歼灭敌人",我不知道Dale Rogerson先生是不
> 是从朝鲜战争中彭总司令的指挥艺术中得到的启示。在示例程序的安排上,每章
> 都有一到两个独立于其他章节的程序,而且作者尽量使这些程序简短而完整。一
> 方面短的例子阅读起来比较容易,另一方面读者可以将学习的重点放在COM组件的
> 需求上,而无需费力去搞清楚复杂的例子中的那些不必要的细节及复杂的实际问
> 题。于编程语言,作者采用的是传统的C++语言,没有涉及到任何WIN32以及MFC的
> 知识,除了在第九章中用到了一些方便的接口指针类之外,书中的其他部分都没
> 有用到模板类。总之作者尽可能地抛掉了一切累赘使读者能轻装前进,只要你学
> 过标准C++,有面向对象编程的基本概念(封装性、继承性、多态性),就大可放
> 心地读这本书了。
> 书的前五章讲的很明白,都是一些诸如组件、接口、引用计数、接口查询以及DLL
> 等基本概念,无需少勇多费口舌。稍微有点美中不足的是书里边建立程序时都用
> 如下命令:
> "cl Client1.cpp Create.cpp GUIDS.cpp UUID.lib"
> "cl/LD Cmpnt1.cpp GUIDS.cpp UUID.lib Compnt1.def"以及
> "nmake -f makefile"。
> 问题是,现在有多少人能够很熟练地写makefile文件以及运用nmake和cl命
> 令?恐怕很少吧。于是读者就得花很多时间来琢磨程序的编译过程,费时、费事、
> 不打粮食!
> 当然,作为原理性的论述,这些东西还是要讲,但是至少应该告诉读者该如
> 何操作才对。我拿第五章的例子来说,首先是建立组件DLL:由于有了VC++,我们
> 大可不必用"cl/LD"来做了,只需要编辑好CMPNT1.CPP、CMPNT1.DEF以及IFACE.H、
> GUIDS.CPP后,在VC++的集成环境中选择建立一个空的WIN32 DLL工程,把这四个
> 文件加入工程,编译连接后CMPNT1.DLL就生成了。然后是建立客户程序:很多人
> 往往这样做:先建立一个空的WIN32工程文件,然后把编辑好的标准C++文件加入
> 工程,可是却通不过连接。
> 于是不止一次的有人问我:在VC++下如何建立标准C++的工程?
> (1)、随便写一个标准C的程序,越简单越好,如:
> main(){return 1;}
> 把这个文件存入你希望的目录下,一定要与你想建的工程同名。(如果你希望的
> 工名是APPLE,那么你应该把这个文件存为APPLE.CPP)。
> (2)、编译APPLE.CPP,这时VC++会提示你没有建工程,是否需要他为你缺省
> 地建一个,当然"是"。于是VC++就在存有APPLE.CPP的目录下创建了名字为APPLE
> 的工程。
> (3)、下一着就是"过河拆桥",从工程里删除APPLE.CPP,加入或者编辑你希
> 望的文件即可。
> 书的前六章讲的很明白,都是一些诸如组件、接口、引用计数、接口查询以及DLL
> 、HRESULT、GUID、注册表等基本概念,大体上过得去,无需少勇多费口舌。
> 第七章讲述类厂,利用类厂来创建组件可能会让人迷惑:不用类厂,一样可以写
> 出功能同样强大的组件来,为什么还要多此一举呢?少勇认为,如果您只想写一
> 个进程内的组件,那么这句话一点没错,因为您完全可以写一个全局函数来创建
> 所有的组件,这时,我们丝毫看不出类厂有什么存在的必要性。但是,如果您要
> 跨进程来创建组件,则情况就不同了:您能写出在其他进程中创建组件并返回句
> 柄的"全局函数"来吗?于是乎Microsoft就想出了创建一个特殊的组件,用这个特
> 殊组件来创建其他的组件,这个特殊组件就是类厂。在进程外组件的创建过程中
> ,类厂接口IClassFactory是第一个跨进程的连接。
> 第八章是至关重要的一章,讲述了组件的复用:包容和聚合。关于"COM是不是面
> 向对象的"之类的讨论好象一直在进行着。COM曾经被指责是一项很差的技术,原
> 因是COM不支持传统意义上的"继承"。这里我们得这样来看这个问题:组件具有
> "可独立发布特性"和"二进制特性",既然可独立发布,就不应该依赖于某个基类
> ,否则如果基类变了,那么组件也得跟着做变动,可独立发布也就无从谈起。而
> 组件复用又是一个现实存在的问题,因为用现成的组件实现新组件的某些功能可
> 以节约大量的时间,COM利用包容和聚合实现了组件的复用,这样既维护了组件
> 的"可独立发布特性",又变相实现了"继承"。嘻嘻!把"猫"叫了个"咪"。少勇认
> 为,关于一些无碍全局的争吵越少越好,衡量一个技术好坏的标准是看它是不是
> 确实好用,能不能解决我们的问题。
> 关于本章的示例程序作一点说明: