SQL猜想(2)

2008-04-02 10:39:44来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

采集我?yuXvv

现在我们碰到的最大问题是:如何创建COM实例并获取其地址供程式使用,如何实现COM代码同时被多个程式所共享。这是个令人头痛的问题,很多地方我都未能理解。为实现COM的共享,我们设计一个任何接口的基类IUnknown接口,IUnknown接口有一个函数QuerInterface来实现接口的转换,一对函数AddRef各Release来增加和减少他的引用计数成员m_dwRef;每当组件返回一个新的接口时,程式就调用AddRef来使m_dwRef加一,当结束一个接口的使用时就调用Release来使m_dwRef减一,当m_dwRef变为0时就删除组件对象。因为其他接口都是从IUnknown派生而来的,他们继承了m_dwRef成员,使这个引用计数能正确记录下正在使用组件的用户数,实现了共享组件的管理。在ATL实现方案中,专家们设计了一个智能指针来封装完成有关引用计数的功能,有人称这种功能的实现者为垃圾收集器。在服务器方面,我们需要做些什么准备呢?我们需要把CLSID、实现文档名等配置信注册到注册表中,以供客户远程激活使用。当客户需要COM服务时,远程电脑根据客户发过来的CLSID在内存中查看对应组件是否已被激活,假如已被激活了,即在组件服务程式中寻找到类对象,再调用其中的方法创建一个对象,并通过QueryInterFace返回一个接口指针给客户使用;假如没被激活,就需要先在注册表中寻找到和CLSID相对应的执行程式地址,在SCM的帮助下装载服务器程式,然后再寻找类对象返回接口指针。采集我?yuXvv

为了解除客户和对象的并发性和重入限制之间的关系的模型,建立对象和进程和线程之间相互关系的模型,出现了套间这个概念。一个套间可被多个对象共享,这些对象共享一组并发性和重入限制,套间被配置为对象接口的一个属性;同一时刻,线程要想使用COM中的方法,必需先进入一个套间中,其他没有进入套间的进程虽然也能得到COM方法的地址,但被禁止调用。套间把客户程式所要使用的COM管理起来,以供客户线程方更安全地调用。唉,其实很多知识我现在还不太明白,不想多说,看了一些书本的描述后,反而让我想起了一些问题。COM是单独编译运行的,里面拥有一些全局变量和在一些方法中需要访问临界资源,假如有多个客户同时需要使用这些变量会发生一些什么情况呢?采集我?yuXvv

很多时候,我的一些想法和思考都只能证实我的无知和肤浅,有实际意义的想法并不是很多,可我已习以为惯,别人喜欢笑就让他笑去吧,反正我现在的确不懂那些知识的,的确很无知。初学COM,有点消化不良,再次把我带到另一个迷惘,我努力发挥智力推测未知,确发现难以找到着力点,推出的结果连自己也觉得荒唐可笑。虽然现在没能对COM有个系统的认知,但是仍然相信自己有能力成为COM专家,因为,我喜欢电脑技术,因为我要靠他吃饭。采集我?yuXvv


2002年7月8日采集我?yuXvv


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: sql数据的like查询条件

下一篇: SQLServer和XML的集成(2)