Sdílet prostřednictvím


Postupy: Manipulace s kódem pomocí modelu kódu Visual C++ (Visual C#)

Ve verzi Visual Studio 2013 jsou zastaralé doplňky.Doporučujeme upgradovat doplňky na rozšíření VSPackage.Další informace o upgradu najdete v tématu Nejčastější dotazy: Převádění doplňků na rozšíření VSPackage.

Model kódu Visual Studio nabízí klientům automatizace možnost najít definice kódu v projektu a změnit tyto elementy kódu.Visual C++ poskytuje rozšíření základního kódového modelu na cílový kód, který je specifický pro Visual C++.

Například pokud vlastnost Language označuje, že daný kód elementu je kód objektu modelu Visual C++ a Kind = vsCMElementClass, pak můžete použít buď CodeClass2 z modelu kódu Visual Studio nebo VCCodeClass z modelu kódu Visual C++.

Následující postupy ukazují, jak zkoumat a generovat kód pomocí modelu kódu, který je specifický pro Visual C++.

Přidání komentáře k prvnímu souboru v projektu

  1. Vytvořte projekt doplňku Visual Studio v Visual C#.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a potom klepněte na tlačítko OK.

  3. Přidejte using Microsoft.VisualStudio.VCCodeModel; na začátek souboru Connect.cs.

  4. Nahraďte kód v metodě OnConnection následujícím kódem:

    // 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. Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.

  6. Otevřete projekt Visual C++ nebo Visual Studio v integrovaném vývojovém prostředí (IDE).

  7. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

  8. Prozkoumejte programově přidané komentáře v prvním souboru v projektu.

Přidání nového souboru do projektu Visual C++

  1. Vytvořte projekt doplňku Visual Studio v Visual C#.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a potom klepněte na tlačítko OK.

  3. Přidejte using Microsoft.VisualStudio.VCCodeModel; na začátek souboru Connect.cs.

  4. Nahraďte kód v metodě OnConnection následujícím kódem:

    //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. Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.

  6. Otevřete projekt Visual C++ nebo v IDE Visual Studio.

  7. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

    [!POZNÁMKA]

    Pokud MyClass2.h již existuje, dojde k chybě kódu.

Přidání funkce do file.h

  1. Vytvořte projekt doplňku Visual Studio v Visual C#.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a System.Windows.Forms a potom klepněte na tlačítko OK.

  3. Na začátek souboru Connect.cs přidejte následující příkazy using:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Nahraďte kód v metodě OnConnection následujícím kódem:

    // 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. Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.

  6. Otevřete projekt Visual C++ v rámci Visual Studio IDE a přidejte do něj file.h.

  7. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

  8. Zkontrolujte kód vložený v souboru file.h.

Chcete-li zobrazit soubory, které obsahují elementy kódu nejvyšší úrovně

  1. Vytvořte projekt doplňku Visual Studio v Visual C#.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a System.Windows.Forms a potom klepněte na tlačítko OK.

  3. Na začátek souboru Connect.cs přidejte následující příkazy using:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Nahraďte kód ve metodě OnConnection následujícím kódem:

    // 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. Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.

  6. Otevřete projekt Visual C++ nebo v IDE Visual Studio.

  7. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

  8. Okna se zprávou obsahují názvy souborů, které obsahují prvky nejvyšší úrovně kódu.

K zobrazení všech položek elementu kódu nejvyšší úrovně

  1. Vytvořte projekt doplňku Visual Studio v Visual C#.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a System.Windows.Forms a potom klepněte na tlačítko OK.

  3. Na začátek souboru Connect.cs přidejte následující příkazy using:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Nahraďte kód ve metodě OnConnection následujícím kódem:

    // 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. Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.

  6. Otevřete projekt Visual C++ nebo v IDE Visual Studio.

  7. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

    Okna se zprávou obsahují názvy prvků nejvyšší úrovně kódu.

Viz také

Úkoly

Postupy: Manipulace s kódem pomocí modelu kódu Visual C++ (Visual Basic)

Koncepty

Model kódu Visual C++

Zjišťování kódu pomocí modelu kódu (Visual Basic)

Zjišťování kódu pomocí modelu kódu (Visual C#)