Compartilhar via


Mecânica básica de atributos

Existem três maneiras de inserir os atributos em seu projeto.Primeiro, você pode inseri-los manualmente no seu código-fonte.Em segundo lugar, você pode inseri-los usando a grade de propriedades de um objeto em seu projeto.Finalmente, você pode inseri-los usando a vários assistentes.Para obter mais informações sobre como usar a janela de propriedades e os vários assistentes, consulte Criando e gerenciando projetos do Visual C++.

Iniciando com o Visual C++.NET, o compilador reconhece a presença de atributos em um arquivo de origem e é capaz de analisar e verificá-los durante a compilação dinamicamente.

Como antes, quando o projeto é construído, o compilador analisa cada arquivo de origem do C++, produzindo um arquivo de objeto.No entanto, quando o compilador encontra um atributo, ele é analisado e sintaticamente verificado.O compilador chama dinamicamente um provedor de atributo para inserir o código ou fazer outras modificações em tempo de compilação.A implementação do provedor difere dependendo do tipo do atributo.Por exemplo, os atributos relacionados ao ATL são implementados por Atlprov.dll.

A figura a seguir demonstra a relação entre o compilador e o provedor de atributo.

Gráfico de comunicação do atributo de componente

ObservaçãoObservação

Uso do atributo não altera o conteúdo do arquivo de origem.O único momento em que o código gerado do atributo fica visível é durante sessões de depuração.Além disso, para cada arquivo de origem no projeto, você pode gerar um arquivo de texto que exibe os resultados da substituição de atributo.Para obter mais informações sobre este procedimento, consulte /Fx (mesclar código injetado) e Depuração código injetado.

Como a maioria das construções de C++, os atributos têm um conjunto de características que define seu uso correto.Isso é conhecido como o contexto do atributo e é abordado a tabela de atributos de contexto para cada tópico de referência de atributo.Por exemplo, o coclass atributo só pode ser aplicado a uma classe existente ou estrutura, em oposição a cpp_quote atributo, que pode ser inserido em qualquer lugar em um arquivo de origem do C++.

Consulte também

Outros recursos

Atribuídos conceitos de programação