Compartilhar via


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++

Confira também

atributos de #import
#import diretiva