Porady: manipulowanie kodem za pomocą modelu kodu Visual C++ (Visual Basic)
W Visual Studio 2013, dodatki są przestarzałe.Zalecamy uaktualnienie dodatków do rozszerzeń VSPackage.Aby uzyskać więcej informacji o uaktualnianiu, zobacz Często zadawane pytania: konwertowanie dodatków na rozszerzenia pakietu VSPackage.
Model kodu Visual Studio oferuje klientom automatyzacji możliwość znalezienia definicji kodów w projekcie i zmodyfikowania tych elementów kodu.Visual C++ oferuje rozszerzenie podstawowego modelu kodu za cel wybierając kod specyficzny dla Visual C++.
Na przykład jeśli właściwość Language wskazuje, że dany element kodu jest obiektu modelu kodu języka Visual C++, a Kind = vsCMElementClass, użytkownik może użyć klasy CodeClass2 z modelu kodu języka Visual Studio lub klasy VCCodeClass z modelu kod języka Visual C++.
Poniższe procedury przedstawiają sposoby badania i generowania kodu za pomocą modelu kodu, który jest specyficzny dla Visual C++.
Aby dodać komentarz do pierwszego pliku w projekcie
Utwórz projekt dodatku Visual Studio w Visual Basic.
W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.
Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.
Zastąp kod w metodzie OnConnection poniższym kodem:
Imports Microsoft.VisualStudio.VCCodeModel Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As ext_ConnectMode, ByVal addInInst As Object, _ ByRef custom As Array) Implements IDTExtensibility2.OnConnection _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) test(_applicationObject) End Sub Sub test(ByVal dte As DTE2) Dim vcCM As VCCodeModel Dim vcCodeElement As VCCodeElement vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel) vcCodeElement = CType(vcCM.CodeElements.Item(1), _ VCCodeElement) AddCommentAtStart(vcCodeElement) AddCommentAtEnd(vcCodeElement) End Sub ' Project Property ' StartPointOf Property ' Adds a comment before the VCCodeElement declaration. Sub AddCommentAtStart(ByVal vcCodeElement As VCCodeElement) Dim textPoint As TextPoint textPoint = vcCodeElement.StartPointOf(vsCMPart.vsCMPartWhole) textPoint.CreateEditPoint().Insert("/*This is a Start_ Comment*/") End Sub Sub AddCommentAtEnd(ByVal vcCodeElement As VCCodeElement) Dim textPoint As TextPoint textPoint = vcCodeElement.EndPointOf(vsCMPart.vsCMPartWhole) textPoint.CreateEditPoint().Insert("/*End Comment*/") End Sub
Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.
Otwórz projekt w języku Visual C++ w zintegrowanym środowisku projektowym (IDE) programu Visual Studio.
W menu Narzędzia, kliknij Menedżer dodatkówi wybierz swój dodatek z okna dialogowego Menedżer dodatków.Kliknij OK, aby uruchomić dodatek.
Zbadaj pierwszy plik w projekcie pod kątem programowo dodanych komentarzy.
Aby dodać nowy plik do projektu Visual C++
Utwórz projekt dodatku Visual Studio w Visual Basic.
W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.
Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.
Zastąp kod w metodzie OnConnection poniższym kodem:
Imports Microsoft.VisualStudio.VCCodeModel Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As ext_ConnectMode, ByVal addInInst As Object, _ ByRef custom As Array) Implements IDTExtensibility2.OnConnection _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) GetVCCodeElement(_applicationObject) End Sub ' Shows how to get a VCCodeElement. Sub GetVCCodeElement(ByVal dte As DTE2) Dim vcCM As VCCodeModel Dim vcCodeElement As VCCodeElement vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel) vcCodeElement = CType(vcCM.AddClass("MyClass2", "MyClass2.h"), _ VCCodeElement) End Sub
Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.
Otwórz projekt Visual C++ w IDE Visual Studio.
W menu Narzędzia, kliknij Menedżer dodatkówi wybierz swój dodatek z okna dialogowego Menedżer dodatków.Kliknij OK, aby uruchomić dodatek.
[!UWAGA]
Jeśli plik MyClass2.h już istnieje, kod nie powiedzie się.
Aby dodać funkcję do file.h
Utwórz projekt dodatku Visual Studio w Visual Basic.
W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.
Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.
Zastąp kod w metodzie OnConnection poniższym kodem:
Imports Microsoft.VisualStudio.VCCodeModel Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As ext_ConnectMode, ByVal addInInst As Object, _ ByRef custom As Array) Implements IDTExtensibility2.OnConnection _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) DisplayName(_applicationObject) End Sub ' DisplayName ' Shows the DisplayName of a function which includes the parameter ' names. Sub DisplayName(ByVal dte As DTE2) Dim vcCM As VCCodeModel Dim vcCodeElement As VCCodeElement vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel) vcCodeElement = CType(vcCM.AddFunction("MyFunction", "File.h", _ vsCMFunction.vsCMFunctionFunction, "void"), VCCodeElement) MsgBox(vcCodeElement.DisplayName) End Sub
Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.
Otwórz projekt w języku Visual C++ w środowisku IDE programu Visual Studio i dodaj do niego plik file.h.
W menu Narzędzia, kliknij Menedżer dodatków, a następnie wybierz swój dodatek z okna dialogowego Menedżer dodatków.Kliknij OK, aby uruchomić dodatek.
Sprawdź wstawiony kod w pliku file.h.
Aby wyświetlić pliki, które zawierają elementy kodu najwyższego poziomu
Utwórz projekt dodatku Visual Studio w Visual Basic.
W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.
Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.
Zastąp kod w metodzie OnConnection, poniższym kodem:
Imports Microsoft.VisualStudio.VCCodeModel Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As ext_ConnectMode, ByVal addInInst As Object, _ ByRef custom As Array) Implements IDTExtensibility2.OnConnection _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) DisplayLocation(_applicationObject) End Sub Sub DisplayLocation(ByVal dte As DTE2) Dim vcCM As VCCodeModel Dim vcCodeElement As VCCodeElement vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel) For Each vcCodeElement In vcCM.CodeElements MsgBox(vcCodeElement.Name + " is declared in " _ & vcCodeElement.Location) Next End Sub
Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.
Otwórz projekt Visual C++ w IDE Visual Studio.
W menu Narzędzia, kliknij Menedżer dodatków, a następnie wybierz swój dodatek z okna dialogowego Menedżer dodatków.Kliknij OK, aby uruchomić dodatek.
Okna komunikatów wyświetlają nazwy plików, które zawierają elementy kodu najwyższego poziomu.
Aby wyświetlić wszystkie pozycje elementów najwyższego poziomu kodu
Utwórz projekt dodatku Visual Studio w Visual Basic.
W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.
Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.
Zastąp kod w metodzie OnConnection, poniższym kodem:
Imports Microsoft.VisualStudio.VCCodeModel Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As Extensibility.ext_ConnectMode, ByVal addInInst _ As Object, ByRef custom As System.Array) Implements _ Extensibility.IDTExtensibility2.OnConnection _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) FindItem(_applicationObject) End Sub Sub FindItem(ByVal dte As DTE2) Dim vcCM As VCCodeModel Dim vcCodeElements As VCCodeElements vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel) vcCodeElements = CType(vcCM.CodeElements, VCCodeElements) Dim i As Integer For i = 1 To vcCodeElements.Count MsgBox(vcCodeElements.Item(i).Name) Next End Sub
Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.
Otwórz projekt Visual C++ w IDE Visual Studio.
W menu Narzędzia, kliknij Menedżer dodatków, a następnie wybierz swój dodatek z okna dialogowego Menedżer dodatków.Kliknij OK, aby uruchomić dodatek.
Okna komunikatów wyświetlają nazwy elementów kodu najwyższego poziomu.