导读:

COM组件:指实现某个功能集合的服务器,可以是dll、exe或者其它。一般用c++实现,也可用其  它语言实现,和语言无关。com组件可以存在于本地电脑,也可以存在于远程服务器中。

COM注册表:由于COM服务器与位置无关,所以需要把二进制文件的位置、调用方式写入注册表

如:HKEY_CLASSES_ROOT\CLSID\{3F367B74-92D9-4C5E-AB93-234F8A91D5E6}\ToolboxBitmap32

COM接口:在c++中就是组件中的一个类,包含很多函数。

IUnknown:所有COM的组件或者接口都必须继承这个接口,在c++中就是一个纯虚函数

COM环境初始化:CoInitialize、CoUninitialize

COM接口统一创建接口:CoCreateInstance

CLSID和IID、GUID关系:CLSID是组件id,IID是接口id,本质上它们都是GUID。一旦生成,就全球唯一。GUID是根据时间、网卡地址、机器名等等信息来生成的,故很难找到有重复的guid

IDispatch:它的主要作用是“接收一个函数的名称并执行它”
然后IDispatch有几个函数:
GetIDsOfNames,取一个函数的名称并返回其调度ID,或称DISPID
Invoke,可以将DISPID作为函数数组指针的索引

说白了就是把每一个函数都编成号码,调用该号码,就用调用该函数

IDispatch接口是什么?_百度知道https://zhidao.baidu.com/question/11997433.html?qbl=relate_question_0&word=%D3%D0com%20%CE%AA%C9%B6%BB%B9%D2%AA%20oledispatch

COleDispatchDriver:封装了IDispatch相关操作,CreateDispatch背后就是调用了CoCreateInstance,InvokeHelperV背后调用了Invoke

COM组件 IDispatch 及双接口的调用_发展是曲折的但也是前进的-CSDN博客一、前言前段时间,由于工作比较忙,没有能及时地写作。其间收到了很多网友的来信询问和鼓励,在此一并表示感谢。咳......我也需要工作来养家糊口呀......上回书介绍了两种方法来写自动化(IDispatch)接口的组件程序,一是用 MFC 方式编写“纯粹”的IDispatch 接口;二是用 ATL 方式编写“双接口”的组件。二、IDispatch 接口和双接口使用者https://blog.csdn.net/CNHK1225/article/details/50555647

_com_ptr_t:VC版的智能指针

_com_ptr_t的使用 _cdpc0202的专栏-CSDN博客_com_ptr_t的使用 对于COM调用,大量的AddRef/Release调用无疑是例行公事和让人生厌。_com_ptr_t 是vc运行库中提供的固有的封装COM接口的智能指针,相比CComPtr/CComQIPtr缺少移植性,但是支持不是ATL实现部分的的异常和操作。以下是DirectShow中播放一个文件的代码:    IGraphBuilder *pGraph;    Ihttps://blog.csdn.net/cdpc0202/article/details/1490721

tlb、tlh、tli的关系:

tlb文件:com类型库文件。在需要使用对应com类的模块里,“#import ...*.tlb”使用之。
tlh、tli文件:他们是vc++编译器解析tlb文件生成的标准c++文件。因为odl和tlb并不是C++标准的东东,有必要把它们翻译成标准的C++类型,使得C++开发者可以使用。相信vb和j++也会把tlb翻译成自己语言兼容的类型描述信息。tlh相当于类型申明(头文件),tli相当于定义实现(CPP文件)。可以用写字板打开查看其内容。

备注一个重要的相关问题:
在VC下#import   "A.tlb"   no_namespace   named_guids;编译后产生A.tlh和A.tli两个文件,但把TLB文件更新后,相应的两个文件没有更新。为什么?
如果更新了tlb文件,需要在菜单里选择全部重新编译,否则编译器仍然会认为.tlh和.tli文件是最新的。

如何引用COM组件的接口:

示例:

#import "c:\program files\common files\system\ado\msado21.tlb" rename ("EOF", "adoEOF")

类似的有:

#import "C:\\Program Files (x86)\\BJCAClient\\CertAppEnvV3.2.2\\Program\\XTXAppCOM.dll" no_namespace

推荐工具:勇芳COM类型库查看器

COM新手入门知识点汇总相关推荐

  1. C# 零基础入门知识点汇总

    C# 零基础入门 知识点汇总 前言 一,基础语法(1~10) 二,流程控制(11~20) 三,数组相关(21~30) 四,函数介绍(31~40) 五,类和对象(41~50) 六,面向对象(51~60) ...

  2. C++——入门知识点汇总(命名空间、缺省、重载、引用等)

    文章目录 前言 一.什么是C++? 二.命名空间 2.1 命名空间的定义 2.2 命名空间的使用 三.输入&输出 四.缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 注意: 五.函数重载 ...

  3. python程序设计知识点汇总_Python入门知识点汇总

    Python的设计目标之一是让代码具备高度的可阅读性.它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观.它不像其他的静态语言如C.Pascal那样需要重复书写声明语句,也不像 ...

  4. C++入门知识点汇总

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一.命名空间 1.1命名空间引入 1.2命名空间使用规则 二.C++的输入输出 2.1使用输入输出需要头文件iostream 1 ...

  5. 软件需求说明书谁负责写_新手入门软件测试需要掌握哪些知识点?

    新手入门软件测试小知识点 这些软件测试常识你必须牢记:01软件测试(软件测试存在的意义) 1.发现程序中的错误而执行程序的过程 2.检验产品是否符合用户需求 3.提高用户体验 02软件测试原则(常识) ...

  6. Python零基础入门,纯干货!【Python基础知识点汇总整理】

    目录 第一章 认识Python.Python常用集成开发环境PyCharm 一.认识 Python 01. Python 的起源 1.2 Python 的设计目标 1.3 Python 的设计哲学 0 ...

  7. 新手对于iPhone开发环境等入门问题解答汇总

    1 iPhone能否在Windows中开发 同类问题:iPhone能不能在XP开发?iPhone能不能在Vista下开发?iPhone能不能在linux下开发? 答: 如果要开发能够在App Stor ...

  8. 关于代码家(干货集中营)共享知识点汇总系列——瞎推荐

    关于代码家(干货集中营)共享的所有知识点其他方面的汇总,后续每周会对其进行更新 更多内容请选择以下入口 关于代码家(干货集中营)共享知识点汇总系列--Android 关于代码家(干货集中营)共享知识点 ...

  9. 新手入门一篇就够:从零开发移动端IM

    一.前言 IM发展至今,已是非常重要的互联网应用形态之一,尤其移动互联网时代,它正以无与论比的优势降低了沟通成本和交流门槛,对各种应用形态产生了深远影响. 做为IM开发者或即将成为IM开发者的技术人员 ...

最新文章

  1. 计算机在人力资源管理中的应用论文,计算机人事管理论文
  2. 火爆GitHub的《机器学习100天》,有人把它翻译成了中文版
  3. MUI主界面菜单同时移动主体部分不出滚动条解决
  4. 外链引入css有哪些方式_HTML+CSS基础(三) CSS的引入方式和CSS选择器
  5. Stata15-Unicode:一次性转码解决中文乱码问题
  6. XX银行数据中心建设方案
  7. android超大屏触摸设备,世界上最大的安卓Android平板电脑具有98英寸的屏幕
  8. 敌兵布阵——线段树单点修改区间查询
  9. 基于AI的恶意软件分类技术(4)
  10. 金融行业的数据分析应该怎么做?
  11. 穿越(pass through)
  12. STM32实现基于I2C的AHT20温湿度采集
  13. 内网 NTP 服务自动对时,ikuai 软路由 ntp 对时方案
  14. android textview svg,Android中使用SVG与WebFont矢量图标
  15. warning: mysql_fetch_array_php提示Warning:mysql_fetch_array() expects的解决方法,expects
  16. yara 模式匹配 android,YARA――恶意软件模式匹配利器
  17. 苹果手机html吊起拍照,苹果手机照相技巧
  18. 冒着开除的风险,让我们解密图书管理之校长看完直夸好IO流下篇
  19. Java 当前时间转农历
  20. 4.2.2 积分法(一)——第二类换元积分法

热门文章

  1. 网站降权排名下降的原因及解决办法
  2. python注释快捷键 引号注释快捷键 注释字体样式调整
  3. Gateway的限流重试机制
  4. RAM的coe文件与简单DDS实现
  5. android 添加日程失败,Android向系统日历中添加日程事件
  6. 基于51单片机的数字温度计ds18b20温度测量报警仿真(仿真+源码+全套资料)
  7. DS18B20温度报警系统设计
  8. Unity试题(包含答案)
  9. 基于ASP网上团购系统的设计与实现
  10. 南京理工大学计算机学院教授严捍,南京理工大学计算机科学与技术学院研究生导师简介-唐金辉...