Wat is het TLB-bestandsformaat?
.tlb-bestanden worden gebruikt door OLE/COM (Component Object Model) objecten en componenten op Windows.
Bestanden met de extensie .tlb bevatten type libraries die interfacebeschrijvingen voor COM-objecten opslaan. Dergelijke objecten vormen de bouwstenen van op COM gebaseerde Windows-componenten. Een type library slaat geen media-inhoud op - het bewaart gestructureerde definities zoals:
- interface- en methodesignaturen,
- eigenschaps- en gebeurtenisdeclaraties,
- type-aliassen en constanten,
- CoClass (creëerbare klasse) definities.
.tlb-bestanden slaan de parameters en metadata op die nodig zijn voor clients om tijdens runtime te communiceren met COM-componenten. Type libraries kunnen worden ingebed in een .EXE-bestand, .DLL-bibliotheek of .ocx ActiveX-besturingselement als een TYPELIB-bron - of gedefinieerd worden in een zelfstandig .tlb-bestand. De Windows API-functie LoadTypeLib() laadt deze tijdens runtime.
Er bestaan twee binaire formaten op de schijf: het moderne MSFT-formaat (gegenereerd door de MIDL-compiler uit .idl-bronbestanden, magic bytes MSFT) en het oudere SLTG-formaat uit het vroege Visual Basic- en Office-tijdperk. Visual Basic en andere COM-bewuste tools gebruiken type libraries om IntelliSense en late-binding mogelijk te maken.
Beveiliging & veiligheid
RISICO: LOWEen .tlb-bestand is een alleen-lezen binaire typebeschrijving en bevat geen uitvoerbare code. Het laden of inspecteren ervan (in OleView, Visual Studio of een TLB-viewer) is veilig. Het kan zelf geen code uitvoeren. De COM-component die de .tlb beschrijft (een .dll of .ocx) is het uitvoerbare deel en brengt eigen risico's met zich mee - maar de .tlb zelf is onschadelijke metadata.
Formaatdetails
in een notendop- Delphi Type Library bestand (.tlb) - Borland/Embarcadero Delphi gebruikt ook .tlb voor de COM type libraries die het genereert - hetzelfde Microsoft COM-standaardformaat, alleen gemaakt door Delphi's TLIBIMP- of TLIB-tools.
- Watcom C++ linker tijdelijk bestand - Sommige oudere Watcom/OpenWatcom builds gebruikten .tlb als een tijdelijk object/linkerbestand - niet gerelateerd aan COM, niet openen als een type library.
Programma's die TLB-bestanden openen
Technische details
diepe specificaties| Formaattype | Binaire COM/OLE type library die interfaces, methoden en typedefinities beschrijft |
| MSFT-formaat magic bytes | 4D 53 46 54 - MSFT-handtekening op offset 0; modern formaat gegenereerd door MIDL/CreateTypeLib2 |
| SLTG-formaat magic bytes | 53 4C 54 47 - SLTG-handtekening op offset 0; ouder formaat uit het Visual Basic-tijdperk van CreateTypeLib |
| Byte-volgorde | Little-endian |
| Typische bestandsgrootte | 10 KB - 2 MB (varieert afhankelijk van het aantal beschreven interfaces en typen) |
| Interne structuur | Vaste header, segmentmap, string-pool, GUID-pool en type-descriptorrecords die alle interfacedefinities, methodesignaturen, constanten en gebeurtenissen coderen |
| Ingebedde vorm | Vaak opgeslagen als een TYPELIB-bron binnen een .dll, .ocx of .exe in plaats van als een zelfstandig bestand |
| Bouwtool | MIDL-compiler (.idl → .tlb); verouderde MKTYPLIB (.odl → .tlb) |
| Windows laad-API | LoadTypeLib() / LoadRegTypeLib() |
| Platform | Alleen Windows (OLE/COM-subsysteem) |
| Primair gebruik | Maakt early-binding, IntelliSense en COM-automatiseringsscripting mogelijk in ontwikkeltools en runtime-clients |
| Gedeeltelijke opvolger | .winmd (ECMA-335 metadata) voor WinRT; .NET assembly metadata voor managed COM-interop |
| Uitgebracht | 1993 (OLE 2.0 / COM; type library concept introduced for OLE Automation) |
| Laatste versie | MSFT format used with CreateTypeLib2 API (current; generated by MIDL compiler); SLTG format (older, CreateTypeLib API) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | learn.microsoft.com |
TLB conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over TLB-bestanden.