来自:http://blog.csdn.net/lcl_data/article/details/7418387

tlb文件是什么?
tlb文件是一个说明文件,通过TLB文件,用户可以得知你的DLL中的COM接口以及常量等信息。其可以单独发行,也可以作为组建DLL中的一个资源随组件一起发行。你可以在VS的Object Browser中看到该文件中包括哪些常数、接口、类,而每个类又包括什么方法和属性。微软提供的各种SDK中通常包括一个或数个TLB文件以方便编程。

怎么创建tlb文件?
用MIDL.exe 和idl文件可以创建tlb文件,[ 1,2].

rc文件里面1TYPELIB "ProjectName.tlb"的用意?
一个组件DLL中可以包含多个型库文件(TLB),1代表第一个类型库文件。序号是必须的,这样客户可以使用序号通过LoadTypeLib() 等方法将指定TLB从DLL/EXE文件中导出.

怎么使用tlb文件?
可以把他随组件一起发行,发行方法[3]:
1. 以text的方式打开rc文件。
2. 在TEXTINCLUDE定义的地方加上以下行:
3 TEXTINCLUDE DISCARDABLE
BEGIN"1 TYPELIB
""ProjectName.tlb""\r\n"
"\0"END
注意:在TEXTINCLUDE前面的数字是递增的,他应该是比你已有的TEXTINCLUDE 的 大1.
3. 做.rc文件的最下方添加以下行:
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the
TEXTINCLUDE 3 resource.
//
1 TYPELIB "ProjectName.tlb"

/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
注意: 在TYPELIB"ProjectName.tlb"前面的数字也是递增的,1这里代表第一个tlb文件。

TEXTINCLUDE是啥?
TEXTINCLUDE主要是包含三种[4]:
i.d. Type of Set Includes information
1 Symbol Header File
2 Read-Only Symbol Directives
3 Compile-Time Directives
这个是MSDN对它的解释:
The purpose of the TEXTINCLUDE resource is to safely store Set Include information in a form that is readily presentable in Visual C++ 's Set Includes dialog box. TEXTINCLUDE is a resource type defined by Visual C++. Visual C++ recognizes three specific TEXTINCLUDE resources that have the resource identification numbers 1, 2 and 3.

下面是我的翻译:
TEXTINCLUDE 资源的目的就是以某种结构的形式,安全的存贮include集合信息,这样他就可以方便的在Visual C++的Includes 集合设置框里显示出来。
TEXTINCLUDE 是 Visual C++定义的一种资源类型。Visual C++能够识别特定3种TEXTINCLUDE资源,他们的标识号分别是1,2,3.

参考:
[1]http://topic.csdn.net/t/20010910/15/280442.html
[2]http://msdn.microsoft.com/en-us/library/windows/desktop/ms680078(v=vs.85).aspx
[3]http://www.vckbase.com/english/code/atl/typelibres.shtml.htm
[4] http://topic.csdn.net/t/20060805/20/4929692.html

关于 tlb 文件的更多相关文章

  1. C#生成.tlb文件初认识

    刚接手同事的代码,生成文件时,发现生成了一个对应的dll文件(应用程序中输出类型为类库),和一个对应的.tlb文件,但是报如下的错误: 那么.tlb文件是如何生成的呢? 选择项目->右键属性-& ...

  2. Ocx控件注册不成功?可能是tlb文件导致~

    Ocx文件是最常用的文件,实际操作中常常需要注册之~ 但是问题来了,经常会出现注册不成功的问题: 解决方法: 1.以“管理员身份”注册 2.Dependency Walker查看依赖是否缺失 3.查看 ...

  3. ATL com的dll文件与tlb文件

    一..tlb文件: 只有COM组件才有tlb文件,普通dll文件没有. 包含内容: 1.它包含了COM类和接口的GUID值,接口的函数声明信息,并不是接口的实现文件.相当于类和接口的头文件. tlb文 ...

  4. visual studio2010中C#生成的,ArcGIS二次开发的basetool的dll,注册为COM组件tlb文件,并在arcmap中加载使用

    写了个标题好长啊~~~~ 这两天又认识了一个新玩意,记录一下下,啦啦啦~~~~~ 话说,认识arcgis快十年了,从桌面版到engine的二次开发,其实不过才认识到它的冰山一角, 它总是能带来很多还未 ...

  5. 偶遇com组件 .rc 文件 not found .tlb文件问题:

    好久木有弄com组件来,记忆已经模糊了,今天遇见一个编译问题,折腾了半天,mark一下: xxx_x64.rc(273): error RC2135: file not found: xxx.tlb ...

  6. [转载]tlb、tlh和tli文件的关系

    tlb.tlh和tli文件的关系 tlb文件:com类型库文件.在需要使用对应com类的模块里,“#import ...*.tlb”使用之. tlh.tli文件:他们是vc++编译器解析tlb文件生成 ...

  7. tlb,tlh,tli文件的关系

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

  8. [转载]VC6中的文件后缀

    VC文件扩展名 .APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度. .BMP:位图资源文件. .BSC:浏览信息文件,由浏览信息维护工具 ...

  9. Delphi COM编程技术三类型库(库文件中的工具栏,很全)

    在COM组件的使用和开发过程中经常需要获取有关组件的信息.而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取.通过访问类型库就可以查看COM组件的信息. 一.类型库的基础 ...

随机推荐

  1. java学习之—链表(3)

    /** * 使用链表实现队列 * Create by Administrator * 2018/6/19 0019 * 下午 4:37 **/ public class Link { public l ...

  2. Linux基础学习(15)--启动管理

    第十五章——启动管理 一.CentOS 6.x启动管理 1.系统运行级别: (1)运行级别: (2)运行级别命令: (3)系统默认运行级别: 2.系统启动过程: . 二.启动引导程序grub 1.Gr ...

  3. Bootstrap之图片展示界面Demo2

    代码:(使用模板引擎freemarker) <!DOCTYPE html> <html> <head> <title>图片</title> ...

  4. Lodop打印设计(PRINT_DESIGN)介绍

    打印设计(PRINT_DESIGN)界面上方有两栏菜单栏,举例说明(文本框,条码,图形等).(1)第一排最左侧第一个功能,位置移动:控制里面元素微上下左右移动,每次移动一个px.(用于微调,普通调整可 ...

  5. Spring Boot 构建电商基础秒杀项目 (九) 商品列表 & 详情

    SpringBoot构建电商基础秒杀项目 学习笔记 ItemDOMapper.xml 添加 <select id="listItem" resultMap="Bas ...

  6. hdu-1238(kmp+枚举)

    题意:给你n个字符串,问你这里面最长的公共子串的长度是多少,一个公共子串的反串也算,比如样例二: 解题思路:随便找一个字符,枚举它的子串然后跑kmp就行了,很多人的博客都是用string类里面的函数来 ...

  7. Nginx geo模块

    geo 模块默认编译进nginx 可以通过--without-http_geo_module禁用 Syntax: geo [$address] $variable { ... } Default: — ...

  8. maven加载本地jar包到repository

    maven加载本地jar到repository 这是一个常见场景,此处以本地opencv jar文件导入repository为例 1.Ubuntu下 mvn install:install-file ...

  9. 前端 -- HTML内容

    HTML介绍 Wed服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5 ...

  10. UOJ274 [清华集训2016] 温暖会指引我们前行 【LCT】【最大生成树】

    题目分析: 差评,最大生成树裸题.hack数据还卡常. 代码: #include<bits/stdc++.h> using namespace std; ; struct LCT{ ],d ...