COM组件 #import ; tlb, tlh, tli 文件

转载 2013年12月03日 15:38:46
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文件是最新的。




#import

在vb中可通过"引用"来加入要使用的COM组件,在vc++中则通过"#import"语句来加入COM组件。使用"#import",vc++就会自动生成COM组件中接口的所有包装类,而且封装对COM异常的处理,使我们可以采用强类型的方式进行调用。当然,"#import"不是必需的,比如我们通过IDispatch或IDispatchEx接口访问COM组件时。 #import语法如下: 
#import "filename" [attributes] 
filename可以是包含类型库的文件,如.olb、.tlb、.dll文件 filename也可以是类型库的guid,或COM组件Id
如:
//导入mshtml组件
#pragma warning(disable:4192)   //避免大量的编译警告
#import "mshtml.tlb" rename("TranslateAccelerator","TranslateAccelerator_HTML") 
//导入msxml组件
#import "progid:MSXML2.DomDocument" 
//导入adodb组件
#import "libid:00000205-0000-0010-8000-00aa006d2ea4"  \  rename("EOF", "EndOfFile")\  rename("Error","AdoError") 

为pimshell开发组件时,有以下几个建议: 
1. 尽量通过#import导入组件,而不是使用Windows SDK提供的接口。如msht
ml组件中的IHTMLDocument2和msxml组件中的IXMLDOMDocument接口,在Windows SDK中均有提供。前面我们说过使用"#import",vc++就会自动生成COM组件中接口的所有包装类,而且封装对COM异常的处理。  
2. 尽量使用命名空间。这样就可避免与Windows SDK提供的接口相冲突,也可以充
分利用vc++自动感知的好处。  
3. 合理的使用#pragma warning,减少大量的编译警告,也会加快项目的编译。  

COM组件 #import ; tlb, tlh, tli 文件

tlb文件:com类型库文件。在需要使用对应com类的模块里,“#import ...*.tlb”使用之。 tlh、tli文件:他们是vc++编译器解析tlb文件生成的标准c++文件。因为odl和t...

tlb tlh tli文件(COM)

tlb tlh tli文件(COM)  (2012-02-01 11:03:31) 转载▼ 标签:  杂谈 分类: Win32 ...

用一般MFC生成COM的EXE, 记得加上 1 TYPELIB "XXXXXXXXS.tlb"

前几天将地图COM 的exe编译个release版本给现场的人员, 现场反馈com的一些事件进不去, 问了下老大,老大说“在exe所在目录中加入了同名的.tlb文件,客户端能调用到事件啦.”后来我找了...

com组件的数据库连接文件

  • 2017年05月26日 13:55
  • 18KB
  • 下载

COM组件设计与应用(一)——起源及复合文件

本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/06/27/8883.html 一、前言   公元一九九五年某个夜黑风高的晚上,我的...

QT 从COM组件里导出.h和.cpp文件

  • 2016年07月25日 16:16
  • 13KB
  • 下载

COM 组件设计与应用----起源及复合文件

微软在成功地推出 Windows 3.1 后,开始垂涎桌面办公自动化软件领域。微软的 OFFICE 开发部门,各小组分别独立地开发了 WORD 和 EXCEL 等软件,并采用“自定义结构”方式,对文件...
  • htt9931
  • htt9931
  • 2013年08月04日 19:15
  • 453

COM520网络与文件系统组件

  • 2011年08月11日 23:38
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:COM组件 #import ; tlb, tlh, tli 文件
举报原因:
原因补充:

(最多只允许输入30个字)