Tlbimp.exe (Type Library Importer-Tool)
Aktualisiert: April 2011
Das Type Library Importer-Tool konvertiert die Typdefinitionen einer COM-Typbibliothek in äquivalente Definitionen einer Common Language Runtime-Assembly. Die Ausgabe von Tlbimp.exe besteht aus einer binäreren Datei (einer Assembly), die Laufzeitmetadaten für die in der ursprünglichen Typbibliothek definierten Typen enthält. Diese Datei können Sie mit Tools wie Ildasm.exe überprüfen.
Dieses Tool wird automatisch mit Visual Studio und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.
Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.
– oder –
Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).
Geben Sie an der Eingabeaufforderung Folgendes ein:
tlbimp tlbFile [options]
Parameter
Argument |
Beschreibungen |
---|---|
tlbFile |
Der Name einer beliebigen Datei, die eine COM-Typbibliothek enthält. |
Option |
Beschreibungen |
---|---|
/asmversion:versionNumber |
Gibt die Versionsnummer der zu erstellenden Assembly an. Geben Sie versionNumber im Format major.minor.build.revision an, beispielsweise 2.4.0.0. |
/delaysign |
Veranlasst Tlbimp.exe , die resultierende Assembly mit einem starken Namen verzögert zu signieren. Sie müssen diese Option entweder zusammen mit der Option /keycontainer:, /keyfile: oder /publickey: angeben. Weitere Informationen zum verzögerten Signieren erhalten Sie unter Verzögertes Signieren einer Assembly. |
/help |
Zeigt Befehlssyntax und Optionen für das Tool an. |
/keycontainer:containerName |
Signiert die resultierende Assembly unter Verwendung des öffentlichen/privaten Schlüsselpaars aus dem mit containername angegebenen Container mit einem starken Namen. |
/keyfile:filename |
Signiert die resultierende Assembly unter Verwendung des unter filename angegebenen öffentlichen/privaten Schlüsselpaars mit einem starken Namen. |
/namespace:Namespace |
Gibt den Namespace an, in dem die Assembly erstellt werden soll. |
/noclassmembers |
Verhindert, dass Member durch Tlbimp.exe zu Klassen hinzugefügt werden. Dadurch wird eine mögliche TypeLoadException verhindert. |
/nologo |
Unterdrückt die Anzeige des Startbanners von Microsoft. |
/out:filename |
Gibt den Namen der Ausgabedatei, der Assembly und des Namespaces an, in dem die Metadatendefinitionen geschrieben werden sollen. Die /out-Option hat keine Auswirkung auf den Namespace der Assembly, wenn in der Typbibliothek die benutzerdefinierten Attribute der IDL (Interface Definition Language) angegeben sind. Diese steuern explizit den Namespace der Assembly. Wenn Sie diese Option nicht angeben, schreibt Tlbimp.exe die Metadaten in eine Datei, die den von der aktuellen Typbibliothek in der Eingabedatei definierten Namen trägt, und weist dieser eine DLL-Erweiterung zu. Stimmt der Name der Ausgabedatei mit dem der Eingabedatei überein, wird eine Fehlermeldung ausgegeben, um ein Überschreiben der Typbibliothek zu verhindern. |
/primary |
Erstellt für die angegebene Typbibliothek eine primäre Interop-Assembly. Der Assembly wird der Hinweis hinzugefügt, dass der Herausgeber der Typbibliothek die Assembly erstellt hat. Sie unterscheiden die Assembly eines Verlegers von beliebigen anderen Assemblys, die mit Tlbimp.exe aus der Typbibliothek erstellt werden, indem Sie eine primäre Interopassembly angeben. Verwenden Sie nur die /primary-Option, wenn Sie der Verleger der Typbibliothek sind, die mit "Tlbimp.exe" importiert wird. Beachten Sie, dass Sie eine primäre Interopassembly mit einem starken Namen signieren müssen. Weitere Informationen finden Sie unter Primäre Interop-Assemblys. |
/publickey:filename |
Gibt die Datei an, die den öffentlichen Schlüssel zum Signieren der resultierenden Assembly enthält. Wenn Sie die /keyfile:-Option oder die /keycontainer:-Option anstelle der /publickey:-Option angeben, generiert Tlbimp.exe den öffentlichen Schlüssel aus dem über /keyfile: bzw. /keycontainer: bereitgestellten öffentlichen/privaten Schlüsselpaar. Die /publickey:-Option unterstützt Testschlüssel und Szenarien für verzögertes Signieren. Die Datei weist das von "Sn.exe" generierte Format auf. Weitere Informationen finden Sie unter der -p-Option von "Sn.exe" unter Strong Name-Tool (Sn.exe). |
/reference:filename |
Gibt die Assemblydatei an, die für das Auflösen von Verweisen auf Typen verwendet werden soll, die außerhalb der aktuellen Typbibliothek definiert sind. Wenn Sie die /reference -Option nicht angeben, importiert Tlbimp.exe automatisch jede externe Typbibliothek, auf die durch die zu importierende Typbibliothek verwiesen wird. Wenn Sie die /reference -Option angeben, versucht das Tool zunächst, die externen Typen in den verwiesenen Assemblys aufzulösen, bevor es andere Typbibliotheken importiert. |
/silent |
Unterdrückt die Anzeige von Erfolgsmeldungen. |
/strictref |
Eine Typbibliothek wird nicht importiert, wenn das Tool nicht alle Verweise in der aktuellen Assembly, in der mit der /reference-Option angegebenen Assembly, oder in den registrierten primären Interop-Assemblys auflösen kann. |
/strictref:nopia |
Wie in /strictref, aber ignoriert primäre Interop-Assemblys. |
/sysarray |
Gibt die Anweisung an das Tool, ein SafeArray im COM-Stil als verwalteten Typ einer System.Array-Klasse zu importieren. |
/tlbreference:filename |
Gibt die zum Auflösen der Verweise auf Typbibliotheken zu verwendende Typbibliotheksdatei an, ohne Einträge aus der Registrierung abzurufen. Beachten Sie, dass bei dieser Option einige ältere Typbibliotheksformate nicht geladen werden. Sie können jedoch ältere Typbibliotheksformate implizit über die Registrierung oder das aktuelle Verzeichnis laden. |
/transform:transformName |
Konvertiert Metadaten entsprechend dem transformName-Parameter. Geben Sie dispret für transformName an, um [out, retval]-Parameter der Methoden für auf Dispatch beschränkte Schnittstellen (Dispatchschnittstellen) in Rückgabewerte zu konvertieren. Weitere Informationen über diese Option finden Sie in den Beispielen weiter unten in diesem Thema. |
/unsafe |
Erstellt Schnittstellen ohne .NET Framework-Sicherheitsüberprüfungen. Eine auf diese Weise verfügbar gemachte Methode aufzurufen, kann ein Sicherheitsrisiko darstellen. Sie sollten diese Option nicht verwenden, wenn Sie die Risiken nicht abschätzen können, die das Verfügbarmachen von derartigem Code beinhaltet. |
/verbose |
Gibt den ausführlichen Modus an und zeigt zusätzliche Informationen über die importierte Typbibliothek an. |
/VariantBoolFieldToBool |
Konvertiert VARIANT_BOOL-Felder in Strukturen in Boolean. |
/? |
Zeigt Befehlssyntax und Optionen für das Tool an. |
Hinweis |
---|
Bei den Befehlszeilenoptionen für Tlbimp.exe wird die Groß- und Kleinschreibung nicht beachtet, und die Optionen können in beliebiger Reihenfolge angegeben werden.Geben Sie einfach die gewünschte Option oder das entsprechende Kürzel an, um diese eindeutig zu kennzeichnen.Damit entspricht /n z. B. /nologo, und /ou:outfile.dll entspricht /out:outfile.dll. |
Hinweise
Tlbimp.exe führt Konvertierungen an einer ganzen Typbibliothek auf einmal durch. Typinformationen zu einer Teilmenge der in einer einzelnen Typbibliothek definierten Typen können Sie mithilfe dieses Tools nicht generieren.
Es ist oft hilfreich oder notwendig, Assemblys starke Namen zuweisen zu können. Daher beinhaltet Tlbimp.exe Optionen, um die zur Generierung von Assemblys mit starken Namen notwendigen Informationen zur Verfügung zu stellen. Sowohl die /keyfile:-Option als auch die /keycontainer:-Option signieren Assemblys mit starken Namen. Darum ist es sinnvoll, jeweils nur eine dieser Optionen gleichzeitig zur Verfügung zu stellen.
Beim Importieren einer Typbibliothek aus einem Modul mit mehreren Typbibliotheken kann optional eine Ressourcen-ID an eine Typbibliothekdatei angehängt werden. Tlbimp.exe kann diese Datei finden, wenn sie sich im aktuellen Verzeichnis befindet oder der vollständige Pfad angegeben wird. Siehe das Beispiel weiter unten in diesem Thema.
Beispiele
Durch folgenden Befehl wird eine Assembly generiert, die den von der Typbibliothek in myTest.tlb gefundenen Namen und eine DLL-Erweiterung aufweist.
tlbimp myTest.tlb
Der folgende Befehl generiert eine Assembly mit dem Namen myTest.dll.
tlbimp myTest.tlb /out:myTest.dll
Durch folgenden Befehl wird eine Assembly generiert, die den Namen der Typbibliothek aufweist, die von MyModule.dll\1 angegeben wurde, und eine DLL-Erweiterung aufweist. MyModule.dll\1 muss sich im aktuellen Verzeichnis befinden.
tlbimp MyModule.dll\1
Durch folgenden Befehl wird eine Assembly mit dem Namen myTestLib.dll für die Typbibliothek TestLib.dll generiert. Die Option /transform:dispret konvertiert beliebige [out, retval]-Parameter von Methoden für Dispatchschnittstellen in der Typbibliothek in Rückgabewerte in der verwalteten Bibliothek.
tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll
Die Typbibliothek TestLib.dll im oben stehenden Beispiel verfügt über eine Dispatchschnittstellen-Methode mit dem Namen SomeMethod, die void zurückgibt und einen [out, retval]-Parameter aufweist. Der folgende Code stellt die Signatur der Typbibliotheksmethode für SomeMethod in TestLib.dll dar.
void SomeMethod([out, retval] VARIANT_BOOL*);
Durch Angabe der Option /transform:dispret wird Tlbimp.exe veranlasst, die [out, retval]-Parameter von SomeMethod in einen bool-Rückgabewert zu konvertieren. Der folgende Code zeigt die Methodensignatur, die Tlbimp.exe für SomeMethod in der verwalteten Bibliothek myTestLib.dll erstellt, wenn die Option /transform:dispret angegeben wird.
bool SomeMethod();
Wenn Sie Tlbimp.exe verwenden, um eine verwaltete Bibliothek für TestLib.dll zu erstellen, ohne /transform:dispret anzugeben, erstellt das Tool die folgende Methodensignatur für SomeMethod in der verwalteten Bibliothek myTestLib.dll.
void SomeMethod(out bool x);
Siehe auch
Referenz
Tlbexp.exe (Type Library Exporter-Tool)
Ildasm.exe (MSIL Disassembler-Tool)
Visual Studio- und Windows SDK-Eingabeaufforderungen
Konzepte
Importieren einer Typbibliothek als Assembly
Attribute zum Importieren von Typbibliotheken in Interop-Assemblys
Weitere Ressourcen
Zusammenfassung: Konvertieren einer Typbibliothek in eine Assembly
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
April 2011 |
Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen. |
Informationsergänzung. |
Mai 2010 |
Fehlender Schalter wurde hinzugefügt. |
Korrektur inhaltlicher Fehler. |