Jak: manipulować kod przy użyciu modelu kodu Visual C++ (Visual C#)
Visual Studio Kod modelu oferuje klientom automatyzacji zdolność do znajdowania definicje kodu w projekcie i zmodyfikować te elementy kodu.Visual C++zawiera rozszerzenie modelu kodu core kod docelowej, specyficzne dla Visual C++.
Na przykład jeśli Language właściwości wskazuje, że element danego kodu jest Visual C++ kod modelu obiektów, i Kind = vsCMElementClass, a następnie można użyć albo CodeClass2 z Visual Studio kod modelu lub VCCodeClass z Visual C++ kod modelu.
Następujące procedury demonstrują sposób zbadać i wygenerować kod przy użyciu modelu kodu, który jest specyficzne dla Visual C++.
Aby dodać komentarz do pierwszego pliku projektu
Tworzenie Visual Studio dodatek projektu w Visual C#.
Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET tab, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij przycisk OK.
Dodaj using Microsoft.VisualStudio.VCCodeModel; do początku pliku Connect.cs.
Zastąp kod w metodzie OnConnection następujący kod:
// 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*/" ); }
Aby zbudować dodatek, kliknij przycisk Roztwór budować na budować menu.
Otwórz Visual C++ projektu w Visual Studio zintegrowane środowisko dewelopowania (IDE).
Na Narzędzia menu, kliknij przycisk - w Menedżerze, a następnie wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.
Zbadać pierwszy plik projektu dla programowo dodane komentarze.
Aby dodać nowy plik do projektu Visual C++
Tworzenie Visual Studio dodatek projektu w Visual C#.
Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET tab, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij przycisk OK.
Dodaj using Microsoft.VisualStudio.VCCodeModel; do początku pliku Connect.cs.
Zastąp kod w metodzie OnConnection następujący kod:
//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 ) ) ); }
Aby zbudować dodatek, kliknij przycisk Roztwór budować na budować menu.
Otwórz Visual C++ projektu w Visual Studio IDE.
Na Narzędzia menu, kliknij przycisk - w Menedżerzei wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.
[!UWAGA]
Jeśli MyClass2.h już istnieje, kod nie powiedzie się.
Aby dodać funkcję do file.h
Tworzenie Visual Studio dodatek projektu w Visual C#.
Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET tab, zaznacz Microsoft.VisualStudio.VCCodeModel i System.Windows.Forms, a następnie kliknij OK.
Dodaje się przy użyciu instrukcji do początku pliku Connect.cs:
using System.Windows.Forms; using Microsoft.VisualStudio.VCCodeModel;
Zastąp kod w metodzie OnConnection następujący kod:
// 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); }
Aby zbudować dodatek, kliknij przycisk Roztwór budować na budować menu.
Otwórz Visual C++ projektu w Visual Studio IDE i dodawanie file.h do niej.
Na Narzędzia menu, kliknij przycisk - w Menedżerze, a następnie wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.
Sprawdzić kod wstawionego w file.h.
Aby wyświetlić pliki, które zawierają elementy kodu najwyższego poziomu
Tworzenie Visual Studio dodatek projektu w Visual C#.
Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET tab, zaznacz Microsoft.VisualStudio.VCCodeModel i System.Windows.Forms, a następnie kliknij OK.
Dodaje się przy użyciu instrukcji do początku pliku Connect.cs:
using System.Windows.Forms; using Microsoft.VisualStudio.VCCodeModel;
Zastąp kod w OnConnection metodę z następującego kodu:
// 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)); } }
Aby zbudować dodatek, kliknij przycisk Roztwór budować na budować menu.
Otwórz Visual C++ projektu w Visual Studio IDE.
Na Narzędzia menu, kliknij przycisk - w Menedżerze, a następnie wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.
Pola komunikatu Wyświetlanie nazw plików, które zawierają elementy kodu najwyższego poziomu.
Aby wyświetlić wszystkie elementy element najwyższego poziomu kodu
Tworzenie Visual Studio dodatek projektu w Visual C#.
Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET tab, zaznacz Microsoft.VisualStudio.VCCodeModel i System.Windows.Forms, a następnie kliknij OK.
Dodaje się przy użyciu instrukcji do początku pliku Connect.cs:
using System.Windows.Forms; using Microsoft.VisualStudio.VCCodeModel;
Zastąp kod w OnConnection metodę z następującego kodu:
// 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); } }
Aby zbudować dodatek, kliknij przycisk Roztwór budować na budować menu.
Otwórz Visual C++ projektu w Visual Studio IDE.
Na Narzędzia menu, kliknij przycisk - w Menedżerze, a następnie wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.
Okna komunikatów wyświetlane nazwy elementów najwyższego poziomu kodu.
Zobacz też
Zadania
Jak: manipulować kod przy użyciu Visual C++ kod modelu (Visual Basic)