荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Deny (冬天来咯), 信区: Program
标  题: ---------------全文完------------
发信站: 荔园晨风BBS站 (Thu Nov 15 20:13:09 2001), 转信

---------------全文完------------

2000/3/31凌晨

补注:关于ATL中类厂的实现问题

1.当创建一个组件时,必须先创建它的类厂,再调用类厂的CreateInstance()来创建
组件.
  在CComCoClass中定义了宏DECLARE_CLASSFACTORY(),包含了组件的类厂对象.
  _ClassFactoryCreatorClass,它的CreateInstance是用来创建组件的类厂的.也
就是
  CComCreator>::CreateInstance();
2.在CComCoClass中也定义了宏DECLARE_AGGREGATABLE(),包含了对象
_CreatorClass,
  这个对象实际上就是我们要创建的组件对象(具体定义看详解一),它也有一个

  CreateInstance,这个函数是用来创建这个组件的!!当创建组件的类厂时,会
把这
  个函数的地址告诉给类厂。
3.当我们成功的获得类厂对象后(此时类厂已经创建完毕),我们然后将调用类厂

  CreateInstance(),在这个函数中,会调用组件的CreateInstance从而创建组件

4.所以,可见这里总共牵扯到三个CreateInstance:
  (1)_ClassFactoryCreatorClass::CreateInstance()//用于创建组件的类厂对象

  (2)CComClassFactory::CreateInstance()//用于调用_CreatorClass::
CreateInstance
  (3)_CreatorClass::CreateInstance()//用于创建组件


--
   ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━┓
   ┃ ◤◤      Though we've got to say goodbye for the summer,  ┃      ┃
   ┃ ◤◤      darling,I promise you this:I'll send you all my  ┃  爱  ┃
   ┃     ◤◤  love everyday in a letter sealed with a kiss.    ┃      ┃
   ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━┪
   ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.201]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店