O que é o formato de ficheiro TLB?
Arquivos .tlb são usados por objetos e componentes OLE/COM (Component Object Model) no Windows.
Arquivos com a extensão .tlb contêm bibliotecas de tipos que armazenam descrições de interface para objetos COM. Tais objetos formam os blocos de construção dos componentes do Windows baseados em COM. Uma biblioteca de tipos não armazena conteúdo de mídia - ela armazena definições estruturadas como:
- assinaturas de interface e método,
- declarações de propriedades e eventos,
- aliases de tipos e constantes,
- definições de CoClass (classe criável).
Arquivos .tlb armazenam os parâmetros e metadados necessários para que os clientes façam a interface com componentes COM em tempo de execução. As bibliotecas de tipos podem ser incorporadas em um arquivo .EXE, biblioteca .DLL ou controle ActiveX .ocx como um recurso TYPELIB - ou definidas em um arquivo .tlb autônomo. A função da API do Windows LoadTypeLib() os carrega em tempo de execução.
Existem dois formatos binários em disco: o formato MSFT moderno (gerado pelo compilador MIDL a partir da fonte .idl, magic bytes MSFT) e o formato SLTG mais antigo da era inicial do Visual Basic e Office. O Visual Basic e outras ferramentas compatíveis com COM usam bibliotecas de tipos para habilitar o IntelliSense e a vinculação tardia (late-binding).
Segurança e proteção
RISCO: LOWUm arquivo .tlb é uma descrição de tipo binária somente leitura e não contém código executável. Carregar ou inspecionar um (no OleView, Visual Studio ou um visualizador de TLB) é seguro. Ele não pode executar código por conta própria. O componente COM que o .tlb descreve (uma .dll ou .ocx) é a parte executável e carrega seu próprio risco - mas o .tlb em si são metadados inofensivos.
Detalhes do formato
em resumo- Arquivo de Biblioteca de Tipos Delphi (.tlb) - O Borland/Embarcadero Delphi também usa .tlb para bibliotecas de tipos COM que ele gera - mesmo formato padrão Microsoft COM, apenas criado pelas ferramentas TLIBIMP ou TLIB do Delphi.
- Arquivo temporário do linker Watcom C++ - Algumas compilações mais antigas do Watcom/OpenWatcom usavam .tlb como um arquivo de objeto/linker temporário - não relacionado ao COM, não abra como uma biblioteca de tipos.
Programas que abrem arquivos TLB
Detalhes técnicos
especificação profunda| Tipo de formato | Biblioteca de tipos binária COM/OLE descrevendo interfaces, métodos e definições de tipos |
| Magic bytes do formato MSFT | 4D 53 46 54 - assinatura MSFT no deslocamento 0; formato moderno gerado por MIDL/CreateTypeLib2 |
| Magic bytes do formato SLTG | 53 4C 54 47 - assinatura SLTG no deslocamento 0; formato mais antigo da era Visual Basic de CreateTypeLib |
| Ordem dos bytes | Little-endian |
| Tamanho de arquivo típico | 10 KB - 2 MB (varia com o número de interfaces e tipos descritos) |
| Estrutura interna | Cabeçalho fixo, diretório de segmentos, pool de strings, pool de GUID e registros de descritores de tipo codificando todas as definições de interface, assinaturas de método, constantes e eventos |
| Forma incorporada | Comumente armazenado como um recurso TYPELIB dentro de uma .dll, .ocx ou .exe em vez de um arquivo autônomo |
| Ferramenta de build | Compilador MIDL (.idl → .tlb); MKTYPLIB descontinuado (.odl → .tlb) |
| API de carregamento do Windows | LoadTypeLib() / LoadRegTypeLib() |
| Plataforma | Apenas Windows (subsistema OLE/COM) |
| Uso primário | Permite vinculação antecipada (early binding), IntelliSense e scripts de automação COM em ferramentas de desenvolvimento e clientes de tempo de execução |
| Sucessor parcial | .winmd (metadados ECMA-335) para WinRT; metadados de assembly .NET para interoperabilidade COM gerenciada |
| Lançado | 1993 (OLE 2.0 / COM; type library concept introduced for OLE Automation) |
| Versão mais recente | MSFT format used with CreateTypeLib2 API (current; generated by MIDL compiler); SLTG format (older, CreateTypeLib API) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | learn.microsoft.com |
Conversões de TLB
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos TLB.