Что такое формат файла TLB?
Файлы .tlb используются объектами и компонентами OLE/COM (Component Object Model) в Windows.
Файлы с расширением .tlb содержат библиотеки типов, в которых хранятся описания интерфейсов для объектов COM. Такие объекты являются строительными блоками компонентов Windows на базе COM. Библиотека типов не содержит медиаконтента - она хранит структурированные определения, такие как:
- сигнатуры интерфейсов и методов,
- объявления свойств и событий,
- псевдонимы типов и константы,
- определения CoClass (создаваемых классов).
Файлы .tlb хранят параметры и метаданные, необходимые клиентам для взаимодействия с компонентами COM во время выполнения. Библиотеки типов могут быть встроены в файл .EXE, библиотеку .DLL или элемент управления ActiveX .ocx в качестве ресурса TYPELIB - либо определены в виде отдельного файла .tlb. Функция Windows API LoadTypeLib() загружает их во время выполнения.
Существует два бинарных формата на диске: современный формат MSFT (генерируется компилятором MIDL из исходного кода .idl, магические байты MSFT) и более старый формат SLTG времен ранних версий Visual Basic и Office. Visual Basic и другие инструменты, поддерживающие COM, используют библиотеки типов для работы IntelliSense и позднего связывания.
Безопасность и защита
РИСК: LOWФайл .tlb является бинарным описанием типов только для чтения и не содержит исполняемого кода. Загрузка или проверка такого файла (в OleView, Visual Studio или средстве просмотра TLB) безопасна. Он не может запускать код самостоятельно. Компонент COM, который описывает .tlb (файл .dll или .ocx), является исполняемой частью и несет свои риски, но сам по себе .tlb - это безвредные метаданные.
Детали формата
в двух словах- Файл библиотеки типов Delphi (.tlb) - Borland/Embarcadero Delphi также использует .tlb для создаваемых библиотек типов COM - тот же стандартный формат Microsoft COM, просто созданный инструментами TLIBIMP или TLIB от Delphi.
- Временный файл линковщика Watcom C++ - Некоторые старые сборки Watcom/OpenWatcom использовали .tlb в качестве временного объектного файла или файла линковщика - не связано с COM, не открывайте как библиотеку типов.
Программы, открывающие файлы TLB
Технические подробности
глубокая спецификация| Тип формата | Бинарная библиотека типов COM/OLE, описывающая интерфейсы, методы и определения типов |
| Магические байты формата MSFT | 4D 53 46 54 - сигнатура MSFT со смещением 0; современный формат, созданный MIDL/CreateTypeLib2 |
| Магические байты формата SLTG | 53 4C 54 47 - сигнатура SLTG со смещением 0; старый формат эпохи Visual Basic из CreateTypeLib |
| Порядок байтов | Little-endian (от младшего к старшему) |
| Типичный размер файла | 10 КБ - 2 МБ (варьируется в зависимости от количества описанных интерфейсов и типов) |
| Внутренняя структура | Фиксированный заголовок, каталог сегментов, пул строк, пул GUID и записи дескрипторов типов, кодирующие все определения интерфейсов, сигнатуры методов, константы и события |
| Встроенная форма | Обычно хранится как ресурс TYPELIB внутри .dll, .ocx или .exe, а не как отдельный файл |
| Инструмент сборки | Компилятор MIDL (.idl → .tlb); устаревший MKTYPLIB (.odl → .tlb) |
| API загрузки Windows | LoadTypeLib() / LoadRegTypeLib() |
| Платформа | Только Windows (подсистема OLE/COM) |
| Основное использование | Обеспечивает раннее связывание, IntelliSense и сценарии автоматизации COM в инструментах разработки и клиентских приложениях |
| Частичный преемник | .winmd (метаданные ECMA-335) для WinRT; метаданные сборки .NET для управляемого взаимодействия с COM |
| Выпущен | 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
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах TLB.