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

  1. Utwórz projekt dodatku Visual Studio w Visual Basic.

  2. W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.

  3. Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.

  4. 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
    
  5. Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.

  6. Otwórz projekt w języku Visual C++ w zintegrowanym środowisku projektowym (IDE) programu Visual Studio.

  7. 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.

  8. Zbadaj pierwszy plik w projekcie pod kątem programowo dodanych komentarzy.

Aby dodać nowy plik do projektu Visual C++

  1. Utwórz projekt dodatku Visual Studio w Visual Basic.

  2. W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.

  3. Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.

  4. 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
    
  5. Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.

  6. Otwórz projekt Visual C++ w IDE Visual Studio.

  7. 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

  1. Utwórz projekt dodatku Visual Studio w Visual Basic.

  2. W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.

  3. Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.

  4. 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
    
  5. Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.

  6. Otwórz projekt w języku Visual C++ w środowisku IDE programu Visual Studio i dodaj do niego plik file.h.

  7. 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.

  8. Sprawdź wstawiony kod w pliku file.h.

Aby wyświetlić pliki, które zawierają elementy kodu najwyższego poziomu

  1. Utwórz projekt dodatku Visual Studio w Visual Basic.

  2. W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.

  3. Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.

  4. 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
    
  5. Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.

  6. Otwórz projekt Visual C++ w IDE Visual Studio.

  7. 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

  1. Utwórz projekt dodatku Visual Studio w Visual Basic.

  2. W menu Projekt kliknij Dodaj odwołanie, kliknij kartę .NET, wybierz Microsoft.VisualStudio.VCCodeModel, a następnie kliknij OK.

  3. Dodaj Imports Microsoft.VisualStudio.VCCodeModel na początku pliku Connect.vb.

  4. 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
    
  5. Aby utworzyć dodatek, kliknij Kompiluj rozwiązanie w menu Kompilacja.

  6. Otwórz projekt Visual C++ w IDE Visual Studio.

  7. 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.

Zobacz też

Koncepcje

Model kodu Visual C++

Odnajdowanie kodu za pomocą modelu kodu (Visual Basic)

Odnajdowanie kodu za pomocą modelu kodu (Visual C#)