Como: Manipular o código usando o modelo do Visual C++ Code (Visual translation from VPE for Csharp)

The Visual Studio modelo de código oferece automação clientes a capacidade de encontrar as definições de código em um projeto e modificar esses elementos de código. Visual C++ Fornece uma extensão ao modelo de código principal ao código de destino específica Visual C++.

Por exemplo, se o Language propriedade indica que um elemento de código fornecido é um Visual C++ código de modelo de objeto, e Kind = vsCMElementClass, em seguida, você pode escolher usar um o CodeClass2 do Visual Studio modelo de código ou a VCCodeClass do Visual C++ modelo de código.

Os procedimentos a seguir demonstram como examinar e gerar código usando o modelo de código é específico para Visual C++.

Para adicionar um comentário ao primeiro arquivo de projeto

  1. Criar um Visual Studio projeto suplemento em Visual C#.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.

  3. Add using Microsoft.VisualStudio.VCCodeModel; para a parte superior do arquivo conectar.cs.

  4. substituir o código no método OnConnection com o código a seguir:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        )addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        test((DTE2)_applicationObject); 
    }
    
    public void test( DTE2 dte ) 
    { 
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); 
        vcCodeElement = ( ( VCCodeElement )
    ( vcCM.CodeElements.Item(1))); 
        AddCommentAtStart( vcCodeElement ); 
        AddCommentAtEnd( vcCodeElement ); 
    } 
    
    public void AddCommentAtStart(
      Microsoft.VisualStudio.VCCodeModel.VCCodeElement vcCodeElement )
    {
        TextPoint textPoint = null;
        textPoint = vcCodeElement.get_StartPointOf(
          vsCMPart.vsCMPartWhole, 0 );
        textPoint.CreateEditPoint().Insert("/*This is a Start Comment*/");
    }
    
    public void AddCommentAtEnd( 
      Microsoft.VisualStudio.VCCodeModel.VCCodeElement vcCodeElement )
    {
        TextPoint textPoint = null;
        textPoint = vcCodeElement.get_EndPointOf( vsCMPart.vsCMPartWhole, 0  
          );
        textPoint.CreateEditPoint().Insert( "/*End Comment*/" );
    }
    
  5. Para criar o suplemento, clicar Criar solução on the Compilação menu.

  6. Abra um Visual C++ projeto na Visual Studio ambiente de desenvolvimento integrado (IDE).

  7. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

  8. Examine o arquivo primeiro no projeto para os comentários adicionados por meio de programação.

Para adicionar um novo arquivo para um projeto Visual C++

  1. Criar um Visual Studio projeto suplemento em Visual C#.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.

  3. Add using Microsoft.VisualStudio.VCCodeModel; para a parte superior do arquivo conectar.cs.

  4. substituir o código no método OnConnection com o código a seguir:

    //Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        GetVCCodeElement((DTE2)_applicationObject); 
    }
    
    //  Shows how to get a VCCodeElement.
    public void GetVCCodeElement( DTE2 dte ) 
    {
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
        vcCodeElement = ( (
          Microsoft.VisualStudio.VCCodeModel.VCCodeElement )( 
          vcCM.AddClass( "MyClass2", "MyClass2.h",0,null, null,
          EnvDTE.vsCMAccess.vsCMAccessDefault ) ) ); 
    }
    
  5. Para criar o suplemento, clicar Criar solução on the Compilação menu.

  6. em aberto a Visual C++ projeto na Visual Studio IDE.

  7. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar seu suplemento a partir de Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

    Observação:

    Se MyClass2.h já existir, o código falhará.

Para adicionar uma função arquivo.h

  1. Criar um Visual Studio projeto suplemento em Visual C#.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e sistema.Windows.Forms e, em seguida, clicar OK.

  3. Adicione as seguintes instruções using ao início do arquivo conectar.cs:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. substituir o código no método OnConnection com o código a seguir:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    using System.Windows.Forms;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        DisplayName((DTE2)_applicationObject); 
    }
    
    // DisplayName
    // Shows the DisplayName of a function which includes the parameter 
    // names.
    public void DisplayName( DTE2 dte ) 
    { 
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
          vcCodeElement = ( (     
            Microsoft.VisualStudio.VCCodeModel.VCCodeElement )
            ( vcCM.AddFunction( "MyFunction", "File.h",  
            vsCMFunction.vsCMFunctionFunction, "void",
            null, EnvDTE.vsCMAccess.vsCMAccessDefault ) ) ); 
        MessageBox.Show( vcCodeElement.DisplayName); 
    }
    
  5. Para criar o suplemento, clicar Criar solução on the Compilação menu.

  6. Abra um Visual C++ projeto na Visual Studio IDE e adicione um arquivo.h a ele.

  7. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

  8. Examine o código inserido no arquivo.h.

Para exibir arquivos que incluem elementos de código de nível superior

  1. Criar um Visual Studio projeto suplemento em Visual C#.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e sistema.Windows.Forms e, em seguida, clicar OK.

  3. Adicione as seguintes instruções using ao início do arquivo conectar.cs:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Substitua o código no OnConnection método com o código a seguir:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    using System.Windows.Forms;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        DisplayLocation((DTE2)_applicationObject); 
    }
    
    public void DisplayLocation( DTE2 dte ) 
    {
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
        foreach ( Microsoft.VisualStudio.VCCodeModel.VCCodeElement temp
          in vcCM.CodeElements ) 
        {
            vcCodeElement = temp;
            MessageBox.Show( vcCodeElement.Name + " is declared in " 
              + vcCodeElement.get_Location(vsCMWhere.vsCMWhereDefault)); 
        }
    }
    
  5. Para criar o suplemento, clicar Criar solução on the Compilação menu.

  6. em aberto a Visual C++ projeto na Visual Studio IDE.

  7. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

  8. mensagem caixas exibem os nomes de arquivo que contêm elementos de código de nível superior.

Para exibir todos os itens de elemento de código de nível superior

  1. Criar um Visual Studio projeto suplemento em Visual C#.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e sistema.Windows.Forms e, em seguida, clicar OK.

  3. Adicione as seguintes instruções using ao início do arquivo conectar.cs:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Substitua o código no OnConnection método com o código a seguir:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    using System.Windows.Forms;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        FindItem((DTE2)_applicationObject); 
    }
    
    public void FindItem( DTE2 dte ) 
    {
        VCCodeModel vcCM = null; 
        VCCodeElements vcCodeElements = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
        vcCodeElements =
          ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeElements )
          ( vcCM.CodeElements ) ); 
        int i = 0; 
        for ( i=1; i<=vcCodeElements.Count; i++ ) 
        {
            MessageBox.Show( vcCodeElements.Item( i ).Name); 
        }
    }
    
  5. Para criar o suplemento, clicar Criar solução on the Compilação menu.

  6. em aberto a Visual C++ projeto na Visual Studio IDE.

  7. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

    Caixas de mensagens exibem os nomes dos elementos de código de nível superior.

Consulte também

Tarefas

Como: Manipular o código usando o modelo de código C++ Visual (Visual Basic)

Conceitos

O Visual C++ Code Model

Descobrindo o código usando o modelo de código (Visual Basic)

Descobrindo o código usando o modelo de código (Visual translation from VPE for Csharp)