Atributo de importação rename
Específico do C++
Soluciona os problemas de colisão de nome.
Sintaxe
#import biblioteca de tipos rename( "OldName" , "NewName" )
Parâmetros
OldName
Nome antigo na biblioteca de tipos.
NewName
Nome a ser usado em vez do nome antigo.
Comentários
Quando o atributo rename é especificado, o compilador substitui todas as ocorrências de OldName na biblioteca de tipos pelo NewName fornecido pelo usuário nos arquivos de cabeçalho resultantes.
O atributo rename pode ser usado quando um nome na biblioteca de tipos coincide com uma definição de macro nos arquivos de cabeçalho do sistema. Se essa situação não for resolvida, o compilador poderá emitir vários erros de sintaxe, como Erro do Compilador C2059 e Erro do Compilador C2061.
Observação
A substituição é para um nome usado na biblioteca de tipos, e não para um nome usado no arquivo de cabeçalho resultante.
Por exemplo, suponha que exista uma propriedade chamada MyParent
em uma biblioteca de tipos, e uma macro GetMyParent
seja definida em um arquivo de cabeçalho e usada antes de #import
. Como GetMyParent
é o nome padrão de uma função de wrapper para a propriedade de tratamento de erros get
, ocorrerá uma colisão de nomes. Para contornar o problema, use o seguinte atributo na instrução #import
:
#import MyTypeLib.tlb rename("MyParent","MyParentX")
que altera o nome MyParent
na biblioteca de tipos. Uma tentativa de alterar o nome do wrapper GetMyParent
falhará:
#import MyTypeLib.tlb rename("GetMyParent","GetMyParentX")
Isso acontece porque o nome GetMyParent
ocorre apenas no arquivo de cabeçalho resultante da biblioteca de tipos.
END Específico do C++