Tlbexp.exe (exportateur de bibliothèques de types)Tlbexp.exe (Type Library Exporter)

L'outil Type Library Exporter (Exportateur de bibliothèques de types) génère une bibliothèque de types décrivant les types définis dans un assembly du Common Language Runtime.The Type Library Exporter generates a type library that describes the types defined in a common language runtime assembly.

Cet outil est installé automatiquement avec Visual Studio.This tool is automatically installed with Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur pour Visual Studio (ou l’invite de commandes Visual Studio dans Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Pour plus d'informations, consultez Invites de commandes.For more information, see Command Prompts.

À l'invite de commandes, tapez le texte suivant :At the command prompt, type the following:

SyntaxeSyntax

tlbexp assemblyName [options]  

ParamètresParameters

ArgumentArgument DescriptionDescription
assemblyNameassemblyName Assembly pour lequel exporter une bibliothèque de types.The assembly for which to export a type library.
OptionOption DescriptionDescription
/asmpath: répertoire/asmpath: directory Spécifie l'emplacement dans lequel rechercher des assemblys.Specifies the location to search for assemblies. Si vous utilisez cette option, vous devez spécifier explicitement les emplacements dans lesquels rechercher des assemblys référencés, y compris le répertoire actif.If you use this option, you must explicitly specify the locations to search for referenced assemblies, including the current directory.

Quand vous utilisez l’option asmpath, l’exportateur de bibliothèques de types ne recherche pas d’assembly dans le Global Assembly Cache (GAC).When you use the asmpath option, the Type Library Exporter will not look for an assembly in the global assembly cache (GAC).
/help/help Affiche la syntaxe et les options de commande de l'outil.Displays command syntax and options for the tool.
/names: nom_fichier/names: filename Spécifie la mise en majuscules des noms figurant dans une bibliothèque de types.Specifies the capitalization of names in a type library. L’argument nom_fichier est un fichier texte.The filename argument is a text file. Chaque ligne du fichier spécifie la mise en majuscules d'un nom de la bibliothèque de types.Each line in the file specifies the capitalization of one name in the type library.
/nologo/nologo Supprime l'affichage de la bannière de démarrage Microsoft.Suppresses the Microsoft startup banner display.
/oldnames/oldnames Oblige Tlbexp.exe à exporter des noms de types décorés s'il y a un conflit de nom de type.Forces Tlbexp.exe to export decorated type names if there is a type name conflict. Notez que c'était le comportement par défaut dans les versions antérieures à .NET Framework version 2.0.Note that this was the default behavior in versions prior to the .NET Framework version 2.0.
/out: fichier/out: file Spécifie le nom du fichier bibliothèque de types à générer.Specifies the name of the type library file to generate. Si vous omettez cette option, Tlbexp.exe génère une bibliothèque de types portant le même nom que celui de l’assembly (le véritable nom de l’assembly, pas nécessairement identique à celui du fichier comportant l’assembly), ainsi qu’une extension .tlb.If you omit this option, Tlbexp.exe generates a type library with the same name as the assembly (the actual assembly name, which might not necessarily be the same as the file containing the assembly) and a .tlb extension.
/silence: warningnumber/silence: warningnumber Supprime l'affichage de l'avertissement spécifié.Suppresses the display of the specified warning. Cette option ne peut pas être utilisée avec /silent.This option cannot be used with /silent.
/silent/silent Supprime l'affichage des messages indiquant la réussite des opérations.Suppresses the display of success messages. Cette option ne peut pas être utilisée avec /silence.This option cannot be used with /silence.
/tlbreference: nom_bibliothèque_types/tlbreference: typelibraryname Oblige Tlbexp.exe à résoudre explicitement les références à la bibliothèque de types sans consulter le Registre.Forces Tlbexp.exe to explicitly resolve type library references without consulting the registry. Par exemple, si l'assembly B référence l'assembly A, vous pouvez utiliser cette option pour fournir une référence à la bibliothèque de types explicites, plutôt que de vous appuyer sur la bibliothèque de types spécifiée dans le Registre.For example, if assembly B references assembly A, you can use this option to provide an explicit type library reference, rather than relying on the type library specified in the registry. Tlbexp.exe contrôle la version pour s'assurer que la version de la bibliothèque de types correspond à la version de l'assembly ; dans le cas contraire, il génère une erreur.Tlbexp.exe performs a version check to ensure that the type library version matches the assembly version; otherwise, it generates an error.

Notez que l’option tlbreference consulte toujours le Registre dans les cas où l’attribut ComImportAttribute est appliqué à une interface qui est ensuite implémentée par un autre type.Note that the tlbreference option still consults the registry in cases where the ComImportAttribute attribute is applied to an interface that is then implemented by another type.
/tlbrefpath: chemin/tlbrefpath: path Chemin complètement spécifié à une bibliothèque de types référencée.Fully qualified path to a referenced type library.
/win32/win32 Lors de la compilation sur un ordinateur 64 bits, cette option spécifie que Tlbexp.exe doit générer une bibliothèque de types 32 bits.When compiling on a 64-bit computer, this option specifies that Tlbexp.exe generates a 32-bit type library.
/win64/win64 En cas de compilation sur un ordinateur 32 bits, cette option spécifie que Tlbexp.exe doit générer une bibliothèque de types 64 bits.When compiling on a 32-bit computer, this option specifies that Tlbexp.exe generates a 64-bit type library.
/verbose/verbose Spécifie le mode Commentaires ; affiche la liste de tous les assemblys référencés pour lesquels une bibliothèque de types doit être générée.Specifies verbose mode; displays a list of any referenced assemblies for which a type library needs to be generated.
/?/? Affiche la syntaxe et les options de commande de l'outil.Displays command syntax and options for the tool.

Notes

Les options de ligne de commande de Tlbexp.exe ne respectent pas la casse et peuvent être fournies dans n'importe quel ordre.The command-line options for Tlbexp.exe are case-insensitive and can be supplied in any order. Il vous suffit de spécifier les éléments de l'option nécessaires à son identification de manière unique.You only need to specify enough of the option to uniquely identify it. Par exemple, /n équivaut à /nologo, et /o: outfile.tlb à /out: outfile.tlb.For example, /n is equivalent to /nologo, and /o: outfile.tlb is equivalent to /out: outfile.tlb.

RemarquesRemarks

Tlbexp.exe génère une bibliothèque de types comportant les définitions des types définis dans l'assembly.Tlbexp.exe generates a type library that contains definitions of the types defined in the assembly. Des applications, telles que Visual Basic 6.0, peuvent utiliser la bibliothèque de types générée pour créer une liaison vers les types .NET définis dans l'assembly.Applications such as Visual Basic 6.0 can use the generated type library to bind to the .NET types defined in the assembly.

Important

Vous ne pouvez pas utiliser Tlbexp.exe pour exporter les fichiers de métadonnées Windows (.winmd).You cannot use Tlbexp.exe to export Windows metadata (.winmd) files. L'exportation des assemblys Windows Runtime n'est pas prise en charge.Exporting Windows Runtime assemblies is not supported.

La totalité de l'assembly est convertie immédiatement.The entire assembly is converted at once. Vous ne pouvez pas utiliser Tlbexp.exe pour générer des informations sur les types pour un sous-ensemble de types définis dans un assembly.You cannot use Tlbexp.exe to generate type information for a subset of the types defined in an assembly.

Vous ne pouvez pas utiliser Tlbexp.exe pour générer une bibliothèque de types à partir d’un assembly ayant été importé à l’aide de l’importateur de bibliothèques de types (Tlbimp.exe).You cannot use Tlbexp.exe to produce a type library from an assembly that was imported using the Type Library Importer (Tlbimp.exe). À la place, vous devez faire référence à la bibliothèque de types d'origine importée avec Tlbimp.exe.Instead, you should refer to the original type library that was imported with Tlbimp.exe. Vous pouvez exporter une bibliothèque de types d'un assembly qui référence des assemblys importés à l'aide de Tlbimp.exe.You can export a type library from an assembly that references assemblies that were imported using Tlbimp.exe. Consultez la section des exemples ci-dessous.See the examples section below.

Tlbexp.exe place les bibliothèques de types générées dans le répertoire de travail en cours ou dans le répertoire spécifié pour le fichier de sortie.Tlbexp.exe places generated type libraries in the current working directory or the directory specified for the output file. Un seul assembly peut être à l'origine de plusieurs bibliothèques de types.A single assembly might cause several type libraries to be generated.

Tlbexp.exe génère une bibliothèque de types, mais ne l'inscrit pas.Tlbexp.exe generates a type library but does not register it. Par contre, l’outil d’inscription d’assembly (Regasm.exe) génère et inscrit une bibliothèque de types.This is in contrast to the Assembly Registration tool (Regasm.exe), which both generates and registers a type library. Utilisez par conséquent Regasm.exe pour générer et inscrire une bibliothèque de types avec COM.To generate and register a type library with COM, use Regasm.exe.

Si vous ne spécifiez pas l'option /win32 ou /win64, Tlbexp.exe génère une bibliothèque de types 32 bits ou 64 bits qui correspond au type d'ordinateur sur lequel vous exécutez la compilation (32 bits ou 64 bits).If you do not specify either the /win32 or /win64 option, Tlbexp.exe generates a 32-bit or 64-bit type library that corresponds to the type of computer on which you are performing the compilation (32-bit or 64-bit computer). Pour les besoins de la compilation croisée, vous pouvez utiliser l'option /win64 sur un ordinateur 32 bits pour générer une bibliothèque de types 64 bits et l'option /win32 sur un ordinateur 64 bits pour générer une bibliothèque de types 32 bits.For cross-compilation purposes, you can use the /win64 option on a 32-bit computer to generate a 64-bit type library and you can use the /win32 option on a 64-bit computer to generate a 32-bit type library. Dans les bibliothèques de types 32 bits, SYSKIND a la valeur SYS_WIN32.In 32-bit type libraries, the SYSKIND value is set to SYS_WIN32. Dans les bibliothèques de types 64 bits, SYSKIND a la valeur SYS_WIN64.In 64-bit type libraries, the SYSKIND value is set to SYS_WIN64. Toutes les transformations de type de données (par exemple, types de données classés selon la taille du pointeur comme IntPtr et UIntPtr) sont converties en conséquence.All data type transformations (for example, pointer-sized data types such as IntPtr and UIntPtr) are converted appropriately.

Si vous utilisez l'attribut MarshalAsAttribute pour spécifier une valeur SafeArraySubType de VT_UNKOWN ou VT_DISPATCH, Tlbexp.exe ignore toute utilisation subséquente du champ SafeArrayUserDefinedSubType.If you use the MarshalAsAttribute attribute to specify a SafeArraySubType value of VT_UNKOWN or VT_DISPATCH, Tlbexp.exe ignores any subsequent use of the SafeArrayUserDefinedSubType field. Examinons, par exemple, les signatures suivantes :For example, given the following signatures:

[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_UNKNOWN, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructUnkSafe(){return null;}  
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructDispSafe(){return null;}  

la bibliothèque de types suivante est générée :the following type library is generated:

[id(0x60020004)]  
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);  
[id(0x60020005)]  
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);  

Notez que Tlbexp.exe ignore le champ SafeArrayUserDefinedSubType.Note that Tlbexp.exe ignores the SafeArrayUserDefinedSubType field.

Comme les bibliothèques de types ne peuvent pas contenir toutes les informations figurant dans les assemblys, Tlbexp.exe peut ignorer certaines données au cours du processus d'exportation.Because type libraries cannot accommodate all the information found in assemblies, Tlbexp.exe might discard some data during the export process. Pour plus d’informations sur le processus de transformation et l’identification de la source de chaque information émise vers une bibliothèque de types, consultez Récapitulatif de la conversion d’un assembly en bibliothèque de types.For an explanation of the transformation process and identification of the source of each piece of information emitted to a type library, see the Assembly to Type Library Conversion Summary.

Notez que l'outil Type Library Exporter exporte des méthodes qui ont des paramètres TypedReference en tant que VARIANT, bien que l'objet TypedReference n'ait aucune signification dans le code non managé.Note that the Type Library Exporter exports methods that have TypedReference parameters as VARIANT, even though the TypedReference object has no meaning in unmanaged code. Lorsque vous exportez des méthodes qui ont des paramètres TypedReference, l'outil Type Library Exporter ne générera aucun avertissement ni aucune erreur et le code non managé qui utilise la bibliothèque de types résultante ne s'exécutera pas correctement.When you export methods that have TypedReference parameters, the Type Library Exporter will not generate a warning or error and unmanaged code that uses the resulting type library will not run properly.

L'outil Type Library Exporter est pris en charge sur Microsoft Windows 2000 et les versions ultérieures.The Type Library Exporter is supported on Microsoft Windows 2000 and later.

ExemplesExamples

La commande suivante génère une bibliothèque de types portant le même nom que celui de l'assembly figurant dans myTest.dll.The following command generates a type library with the same name as the assembly found in myTest.dll.

tlbexp myTest.dll  

La commande suivante génère une bibliothèque de types portant le nom clipper.tlb.The following command generates a type library with the name clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

L'exemple suivant illustre l'utilisation de Tlbexp.exe pour exporter une bibliothèque de types à partir d'un assembly faisant référence à des assemblys ayant été importés à l'aide de Tlbimp.exe.The following example illustrates using Tlbexp.exe to export a type library from an assembly that references assemblies that were imported using Tlbimp.exe.

Utilisez d'abord Tlbimp.exe pour importer la bibliothèque de types myLib.tlb et enregistrez-la sous myLib.dll.First use Tlbimp.exe to import the type library myLib.tlb and save it as myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

La commande suivante utilise le compilateur C# pour compiler Sample.dll, faisant référence à myLib.dll créé au cours de l'exemple précédent.The following command uses the C# compiler to compile the Sample.dll, which references myLib.dll created in the previous example.

CSC Sample.cs /reference:myLib.dll /out:Sample.dll  

La commande suivante génère une bibliothèque de types pour Sample.dll faisant référence à myLib.dll.The following command generates a type library for Sample.dll that references myLib.dll.

tlbexp Sample.dll  

Voir aussiSee also