COM编程入门.docx
COM编程入门是针对初次接触此技术的程序员,旨在介绍组件对象模型(Component Object Model,简称COM)的基本概念和使用方法。COM是微软提出的一种跨应用程序和语言的二进制代码共享机制,其核心目标是促进代码重用,解决源代码重用的局限性,比如C++中的命名冲突和代码复制导致的问题。 COM规范定义了二进制标准,确保不同编程语言编译的模块能够相互协作。它规定了在内存中COM对象的组织方式,使得任何语言都能访问这些对象。虽然COM最初是为Win32平台设计的,理论上可以移植到其他操作系统,但在实践中,它主要应用于Windows环境。 在COM架构中,关键概念包括: 1. **接口(Interface)**:一组方法的集合,类似于C++中的纯虚函数接口。接口名称以大写字母I开头,如IShellLink。接口可以单继承,不允许多继承。 2. **组件对象类(CoClass)**:实现一个或多个接口的代码实体,存在于DLL或EXE中。在内存中,每个COM对象都是一个CoClass的实例。 3. **COM对象(COM Object)**:CoClass的具体实例,表现为实现特定接口的内存结构。 4. **COM服务器(COM Server)**:包含一个或多个CoClass的二进制文件,可以是DLL或EXE,提供COM对象的实现。 5. **注册(Registration)**:将COM服务器的信息写入注册表的过程,以便操作系统知道如何找到和使用它们。 6. **取消注册(Unregistration)**:从注册表中移除COM服务器的条目。 7. **GUID(全局唯一标识符)**:每个COM组件都有一个唯一的128位标识符,确保不会与其他组件混淆。 COM编程涉及的主要操作有: - **创建COM对象**:通过CoCreateInstance函数,传入组件的CLSID(类ID,即GUID的一种)来实例化对象。 - **使用COM对象**:调用对象上的方法,这些方法对应接口中定义的函数。 - **销毁COM对象**:使用Release方法减少引用计数,当计数为0时,对象会被自动释放。 COM还引入了基本接口IUnknown,它是所有其他接口的基接口,包含了三个重要的方法:QueryInterface(查询对象支持的接口)、AddRef(增加引用计数)和Release(减少引用计数)。 在处理字符串时,COM通常使用BSTR类型,这是OLE Automation中定义的一种Unicode字符串。使用COM技术时,需要理解和正确处理HRESULT,这是一个返回值类型,用于表示操作成功或失败的状态。 通过学习COM的基本概念,程序员可以利用已有的COM组件,如Windows外壳组件Shell,来扩展和集成应用程序功能。掌握COM编程不仅能够提升开发效率,还能更好地利用Windows操作系统中的内置组件和第三方COM对象。
剩余33页未读,继续阅读
- deject2017-11-26不错,有借鉴意义。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- matlab平台的虫害监测.zip
- matlab平台的虫害检测.zip
- 基于java的在线英语阅读分级平台设计与实现.docx
- 基于java的疫情物资捐赠和分配系统设计与实现.docx
- 基于java的综合小区管理系统设计与实现.docx
- matlab平台的答题卡识别系统.zip
- matlab平台的答题纸试卷自动识别.zip
- matlab平台的答题卡自动识别系统.zip
- matlab平台的打印纸缺陷检测GUI设计.zip
- matlab平台的道路桥梁裂缝检测.zip
- pcasvc.dll-windows操作系统提示缺失该dll文件可下载使用
- matlab平台的打架斗殴异常行为识别.zip
- matlab平台的的DWT数字音频水印系统.zip
- matlab平台的的DWT数字水印设计.zip
- matlab平台的的CNN卷积神经网络疲劳检测.zip
- matlab平台的的PCB版字符识别.zip