cambiar nombre de atributo de importaciónrename import attribute

C++CuestiónC++ Specific

Resuelve problemas del conflicto de nombres.Works around name collision problems.

SintaxisSyntax

#import cambiar el nombre de la biblioteca de tipos ("OldName" , "NewName" )#import type-library rename( "OldName" , "NewName" )

ParámetrosParameters

\ OldNameOldName</span> Nombre anterior en la biblioteca de tipos.Old name in the type library.

NewNameNewName
Nombre usado en lugar del nombre anterior.Name to be used instead of the old name.

ObservacionesRemarks

Cuando se especifica el atributo Rename , el compilador reemplaza todas las apariciones de OldName en la biblioteca de tipos con el NewName proporcionado por el usuario en los archivos de encabezado resultantes.When the rename attribute is specified, the compiler replaces all occurrences of OldName in type-library with the user-supplied NewName in the resulting header files.

Se puede usar el atributo Rename cuando un nombre de la biblioteca de tipos coincide con una definición de macro en los archivos de encabezado del sistema.The rename attribute can be used when a name in the type library coincides with a macro definition in the system header files. Si no se resuelve esta situación, el compilador puede emitir varios errores de sintaxis, como el error del compilador C2059 y el error del compilador C2061.If this situation isn't resolved, the compiler may issue various syntax errors, such as Compiler Error C2059 and Compiler Error C2061.

Nota

La sustitución se aplica a un nombre usado en la biblioteca de tipos, no a un nombre usado en el archivo de encabezado resultante.The replacement is for a name used in the type library, not for a name used in the resulting header file.

Suponga, por ejemplo, que hay una propiedad denominada MyParent en una biblioteca de tipos y que se define una macro GetMyParent en un archivo de encabezado y se utiliza antes de #import.For example, suppose a property named MyParent exists in a type library, and a macro GetMyParent is defined in a header file and used before #import. Puesto que GetMyParent es el nombre predeterminado de una función contenedora para la propiedad get de control de errores, se producirá un conflicto de nombres.Since GetMyParent is the default name of a wrapper function for the error-handling get property, a name collision will occur. Para solucionar el problema, utilice el siguiente atributo en la instrucción #import:To work around the problem, use the following attribute in the #import statement:

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

que cambia el nombre MyParent en la biblioteca de tipos.which renames the name MyParent in the type library. Un intento de cambiar el nombre del contenedor GetMyParent producirá un error:An attempt to rename the GetMyParent wrapper name will fail:

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

Se debe a que el nombre GetMyParent solo se produce en el archivo de encabezado de la biblioteca de tipos resultante.It's because the name GetMyParent only occurs in the resulting type library header file.

Específico C++ de finalizaciónEND C++ Specific

Consulte tambiénSee also

#import atributos#import attributes
#import (Directiva)#import directive