關於 tlb 文件


來自: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM