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 实用工具。
- 类型库驱动 :若要使用类型库驱动的编组,接口方法的参数需使用
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



