学习笔记 Real COM with the MFC Library (译二)

本文探讨了在真正的COM中,如何通过Windows Registry来定位和加载DLL或EXE组件。CoGetClassObject方法根据类ID在注册表中查找组件,并详细介绍了类ID与易编程ID之间的转换过程。同时提到了在COM中处理Unicode字符串的问题。
摘要由CSDN通过智能技术生成

  COM 与Windows Registry

  在EX24A的例子中,在一种清晰明确的假设环境下,组件被静态的链接到了客户端。在真正的COM中,组件要么是DLL要么是独立的EXE。当客户程序调用的CoGetClassObject方法,COM将进入并且查找定位在磁盘某处正确的组件。COM是如何建立起这个联系的呢?它将在window Registry中查找类的唯一128位类ID,因此,这个被查找的类必须永久的注册进你的电脑内。

  如果你运行windwos Registry程序(在Windows NT 3.51里是Regedit32),你将会看到与图24-5相似的界面。这个图显示的是类ID的子目录,有三个是与DLL类ID相关的(InproceServer32),其中有一个是与EXE类ID相关的(LocalServer32)。CoGetClassObject方法在注册表类找到类ID,然后载入所需的DLL或EXE。

  如果你不想记住那些难以理解的类ID的数字,可以吗?没问题。COM支持另外一种注册类型数据库条目,它能够帮助我们将一个人容易理解的易编程的ID转换成相应类ID,图24-6显示的是这个条目在注册表中的位置,COM的CLSIDFromProgID方法通过读取这个数据库条目,然后执行该转换。


Figure 24-5.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值