cambiar nombre de atributo de importaciónrename import attribute
Específicos de C++C++ 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
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 de control de errores get
, 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íficos de C++: ENDEND C++ Specific
Consulta tambiénSee also
atributos de #import#import attributes
#import (Directiva)#import directive