TLB ファイル形式とは?
.tlb ファイルは、Windows 上の OLE/COM (Component Object Model) オブジェクトおよびコンポーネントによって使用されます。
.tlb 拡張子を持つファイルには、COM オブジェクトのインターフェイス記述を格納する タイプ ライブラリ が含まれています。これらのオブジェクトは、COM ベースの Windows コンポーネントの構成要素となります。タイプ ライブラリにはメディア コンテンツは保存されず、次のような構造化された定義が保存されます。
- インターフェイスおよびメソッドのシグネチャ
- プロパティおよびイベントの宣言
- 型エイリアスおよび定数
- CoClass (作成可能なクラス) の定義
.tlb ファイルには、クライアントが実行時に COM コンポーネントとインターフェイスするために必要なパラメータとメタデータが格納されています。タイプ ライブラリは、TYPELIB リソースとして .EXE ファイル、.DLL ライブラリ、または .ocx ActiveX コントロールに埋め込むことも、スタンドアロンの .tlb ファイルとして定義することもできます。Windows API 関数の LoadTypeLib() が実行時にこれらを読み込みます。
ディスク上のバイナリ形式には 2 つの種類があります。最新の MSFT 形式 (.idl ソースから MIDL コンパイラによって生成され、マジック バイトは MSFT) と、初期の Visual Basic や Office 時代の古い SLTG 形式です。Visual Basic やその他の COM 対応ツールは、タイプ ライブラリを使用して IntelliSense や遅延バインディングを有効にします。
セキュリティと安全性
リスク: LOW.tlb ファイルは読み取り専用のバイナリ型記述であり、実行可能コードは含まれていません。これらを (OleView、Visual Studio、または TLB ビューアで) 読み込んだり検査したりすることは安全です。それ自体でコードを実行することはできません。.tlb が記述する COM コンポーネント (.dll または .ocx) は実行可能な部分であり、独自のリスクを伴いますが、.tlb 自体は無害なメタデータです。
形式の詳細
概要- Delphi タイプ ライブラリ ファイル (.tlb) - Borland/Embarcadero Delphi も、生成する COM タイプ ライブラリに .tlb を使用します。これは Microsoft COM 標準形式と同じであり、Delphi の TLIBIMP または TLIB ツールによって作成されます。
- Watcom C++ リンカ一時ファイル - 一部の古い Watcom/OpenWatcom ビルドでは、.tlb を一時的なオブジェクト/リンカ ファイルとして使用していました。これは COM とは無関係であり、タイプ ライブラリとして開かないでください。
TLB ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマット タイプ | インターフェイス、メソッド、型定義を記述するバイナリ COM/OLE タイプ ライブラリ |
| MSFT 形式のマジック バイト | 4D 53 46 54 - オフセット 0 の MSFT シグネチャ。MIDL/CreateTypeLib2 によって生成される最新形式 |
| SLTG 形式のマジック バイト | 53 4C 54 47 - オフセット 0 の SLTG シグネチャ。CreateTypeLib による古い Visual Basic 時代の形式 |
| バイト順序 | リトルエンディアン |
| 一般的なファイル サイズ | 10 KB - 2 MB (記述されるインターフェイスや型の数によって異なります) |
| 内部構造 | 固定ヘッダー、セグメント ディレクトリ、文字列プール、GUID プール、およびすべてのインターフェイス定義、メソッド シグネチャ、定数、イベントをエンコードする型記述子レコード |
| 埋め込み形式 | スタンドアロン ファイルとしてではなく、.dll、.ocx、または .exe 内に TYPELIB リソースとして格納されるのが一般的 |
| ビルド ツール | MIDL コンパイラ (.idl → .tlb); 非推奨の MKTYPLIB (.odl → .tlb) |
| Windows 読み込み API | LoadTypeLib() / LoadRegTypeLib() |
| プラットフォーム | Windows 専用 (OLE/COM サブシステム) |
| 主な用途 | 開発ツールやランタイム クライアントにおける事前バインディング、IntelliSense、および COM オートメーション スクリプトを可能にする |
| 部分的な後継 | WinRT 用の .winmd (ECMA-335 メタデータ); マネージド COM 相互運用用の .NET アセンブリ メタデータ |
| リリース日 | 1993 (OLE 2.0 / COM; type library concept introduced for OLE Automation) |
| 最新バージョン | MSFT format used with CreateTypeLib2 API (current; generated by MIDL compiler); SLTG format (older, CreateTypeLib API) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | learn.microsoft.com |
TLB の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。TLB ファイルについて最初の質問をしてみましょう。