![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
COM
wilsonany
这个作者很懒,什么都没留下…
展开
-
COM组件的类厂(COM技术内幕笔记之四)
在上一篇中,介绍了怎么样用动态链接库去实现COM,但组件对我们来说仍是不透明的,我们需要知道实现组件DLL的位置,必须自己来加载组件的CreateInstance函数来获得组件的指针.在书中第一篇就曾经提到过:COM组件可以透明地在网络上(或本地)被重新分配位置,而不会影响本地客户程序.所以,由客户端来调用DLL并不是什么好主意.必须有一种更好的办法让组件的实现更透明,更灵活! 于是,就引入了类厂的概念.什么是类厂,类厂也是一个接口,它的职责是帮我们创造组件的对象.并返回给客户程序一个接口的指针.每转载 2010-09-13 20:36:00 · 1070 阅读 · 0 评论 -
包容和聚合(COM技术内幕笔记五)
<br />包容和聚合:<br /> 包容和聚合实际上是使一个组件使用另外一个组件的一种技术。在包容的情况下,外部组件将包含内部组件。在聚合的情况下,外部组件聚合内部组件。<br /> 在此设想一下,外部组件是我们的要实现的组件,而内部组件是其它要重用的组件。<br /> 包容是外部组件包含指向内部组件接口的指针.外部组件相对来说是内部组件的一个客户,它将使用内部组件的接口来实现它自己的接口.<br /><br /> 聚合是包容的一个特例,当一个外部组件聚合了某个内部组件的一个接口时,它转载 2010-09-13 20:53:00 · 366 阅读 · 0 评论 -
COM聚合(转)
<br />聚合的概念<br />聚合源自组件重用。当有两个组件A和B,他们分别实现了自己的接口IA和IB。如果有一个客户程序创建了A对象使得自己可以调用IA的方法,但同时又想获得IB的接口,调用IB的方法。这时候有两种做法:一种是客户程序创建B对象,还有一种方法是A组件内部创建B组件,然后客户通过某种途径调用B的接口方法。<br />第一种方法,使得客户必须知道有独立的B组件的存在,第二种方法客户可以认为只有一个组件A,组件A实现了两个接口IA和IB。第二种方法可以制造出一种假象,让客户程序编写更加简单。转载 2010-09-13 21:10:00 · 428 阅读 · 0 评论 -
IDispatch接口原理与应用(转)
<br />前言:<br />尽管com接口是跨语言的,但是很多语言在使用com时更多地通过Automation技术来和com对象通信。IDispatch接口是Automation的核心技术。<br />尽管c++程序员并不喜欢甚至讨厌使用IDispatch接口,因为调用它实在是非常的麻烦而且易出错。但是不可否认大量的现存组件是只基于IDispatch接口技术而开发的,有时候你没有选择,而且如果你想要写一些组件能够在web上运行,你也离不开IDisptch接口,因为VBScript这样的脚本语言不会聪明到能转载 2010-09-13 21:06:00 · 688 阅读 · 0 评论 -
placement new释疑
<br />placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。<br />它的原型如下: <br />void *operator new( size_t, void *p ) throw() { return p; }<br /> <br />首先我们区分下几个容易混淆的关键词:new、operator new、placement new <br /转载 2011-01-26 12:19:00 · 259 阅读 · 0 评论