Partager via


renommer l’attribut d’importation

Spécifique À C++

Offre une solution de contournement pour les problèmes de collisions de noms.

Syntaxe

#import type-library rename( « OldName » , « NewName » )

Paramètres

OldName
Ancien nom dans la bibliothèque de types.

NewName
Nom à utiliser au lieu de l'ancien nom.

Notes

Lorsque l’attribut de renommage est spécifié, le compilateur remplace toutes les occurrences de OldName dans la bibliothèque de types par le NewName fourni par l’utilisateur dans les fichiers d’en-tête résultants.

L’attribut de renommage peut être utilisé lorsqu’un nom dans la bibliothèque de types coïncide avec une définition de macro dans les fichiers d’en-tête système. Si cette situation n’est pas résolue, le compilateur peut émettre différentes erreurs de syntaxe, telles que l’erreur du compilateur C2059 et l’erreur du compilateur C2061.

Remarque

Le remplacement concerne un nom utilisé dans la bibliothèque de types et pas un nom utilisé dans le fichier d'en-tête résultant.

Par exemple, supposons qu'une propriété nommée MyParent existe dans une bibliothèque de types et qu'une macro GetMyParent est définie dans un fichier d'en-tête et utilisée avant #import. Étant GetMyParent donné que le nom par défaut d’une fonction wrapper pour la propriété de gestion des get erreurs se produit, une collision de noms se produit. Pour contourner le problème, utilisez l'attribut suivant dans l'instruction #import :

#import MyTypeLib.tlb rename("MyParent","MyParentX")

ce qui renomme le nom MyParent dans la bibliothèque de types. Une tentative de changement du nom du wrapper GetMyParent échoue :

#import MyTypeLib.tlb rename("GetMyParent","GetMyParentX")

Cela est dû au fait que le nom GetMyParent se produit uniquement dans le fichier d’en-tête de bibliothèque de types résultant.

FIN C++ Spécifique

Voir aussi

attributs #import
directive #import