9、COM 开发:从接口定义到组件实现

COM 开发:从接口定义到组件实现

在 COM 开发中,接口的编组、内存管理、多 IDL 文件组织以及将 C++ 接口转换为 IDL 接口等都是关键环节。下面我们将详细探讨这些方面的内容。

接口编组

接口编组有两种方式:使用 MIDL 生成的代码或编写显式的编组代码。基于 MIDL 生成代码的编组称为标准编组,而开发者自行编写代码的编组则为自定义编组。大多数情况下,标准编组性能高效。

标准编组可由 MIDL 生成的代理/存根代码或 MIDL 生成的类型库驱动。

  • 代理/存根代码驱动 :需要编译和链接代理/存根代码以创建代理/存根 DLL。该 DLL 作为 COM 服务器,需在客户端和服务器机器上注册。可使用 regsvr32.exe 工具进行注册和注销操作:
regsvr32.exe myproxystub.dll       // 在本地机器上注册代理/存根
regsvr32.exe –u myproxystub.dll    // 注销代理/存根

构建代理/存根 DLL 需要特定的编译器开关、模块定义文件和特定的库进行链接。若使用 ATL 创建 COM 服务器项目,ATL 会生成模块定义文件和 makefile 来构建代理/存根 DLL;若不使用 ATL 或仅为特定 IDL 文件中的接口创建代理/存根 DLL,可使用 CreatePS 实用工具。

  • 类型库驱动 :若要使用类型库驱动的编组,接口方法的参数需使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值