Procedura: modificare il codice tramite il modello di codice di Visual C++ (Visual Basic)

Il modello di codice di Visual Studio consente ai client di automazione di rilevare definizioni di codice all'interno di un progetto e di modificarne gli elementi.In Visual C++ è disponibile un'estensione al modello di codice di base destinata al codice specifico di Visual C++.

Se, ad esempio, la proprietà Language indica che un determinato elemento di codice è un oggetto del modello di codice di Visual C++ e Kind = vsCMElementClass, è possibile scegliere di utilizzare CodeClass2 dal modello di codice di Visual Studio oppure VCCodeClass dal modello di codice Visual C++.

Nelle procedure seguenti viene illustrato come esaminare e generare codice mediante il modello di codice specifico di Visual C++.

Per aggiungere un commento al primo file nel progetto

  1. Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.

  2. Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.

  3. Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.

  4. Sostituire il codice nel metodo OnConnection con il codice seguente:

    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. Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.

  6. Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato (IDE) di Visual Studio.

  7. Scegliere Gestione componenti aggiuntivi dal menu Strumenti, quindi selezionare il componente aggiuntivo nella finestra di dialogo Gestione componenti aggiuntivi.Scegliere OK per eseguire il componente aggiuntivo.

  8. Esaminare i commenti aggiunti a livello di codice nel primo file del progetto.

Per aggiungere un nuovo file a un progetto Visual C++

  1. Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.

  2. Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.

  3. Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.

  4. Sostituire il codice nel metodo OnConnection con il codice seguente:

    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. Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.

  6. Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio.

  7. Scegliere Gestione componenti aggiuntivi dal menu Strumenti, quindi selezionare il componente aggiuntivo nella finestra di dialogo Gestione componenti aggiuntivi.Scegliere OK per eseguire il componente aggiuntivo.

    [!NOTA]

    Se MyClass2.h esiste già, il codice avrà esito negativo.

Per aggiungere una funzione a file.h

  1. Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.

  2. Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.

  3. Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.

  4. Sostituire il codice nel metodo OnConnection con il codice seguente:

    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. Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.

  6. Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio a aggiungervi un file.h.

  7. Scegliere Gestione componenti aggiuntivi dal menu Strumenti e selezionare il componente aggiuntivo nella finestra di dialogo Gestione componenti aggiuntivi.Scegliere OK per eseguire il componente aggiuntivo.

  8. Esaminare il codice inserito in file.h.

Per visualizzare i file che includono elementi di codice di primo livello

  1. Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.

  2. Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.

  3. Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.

  4. Sostituire il codice nel metodo OnConnection con il codice seguente:

    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. Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.

  6. Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio.

  7. Scegliere Gestione componenti aggiuntivi dal menu Strumenti e selezionare il componente aggiuntivo nella finestra di dialogo Gestione componenti aggiuntivi.Scegliere OK per eseguire il componente aggiuntivo.

    Nelle finestre di messaggio verranno visualizzati i nomi dei file che contengono gli elementi di codice di primo livello.

Per visualizzare tutte le voci degli elementi di codice di primo livello

  1. Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.

  2. Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.

  3. Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.

  4. Sostituire il codice nel metodo OnConnection con il codice seguente:

    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. Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.

  6. Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio.

  7. Scegliere Gestione componenti aggiuntivi dal menu Strumenti e selezionare il componente aggiuntivo nella finestra di dialogo Gestione componenti aggiuntivi.Scegliere OK per eseguire il componente aggiuntivo.

    Nelle finestra di messaggio verranno visualizzati i nomi degli elementi di codice di primo livello.

Vedere anche

Concetti

Modello di codice Visual C++

Individuazione di codice mediante il modello di codice (Visual Basic)

Individuazione di codice mediante il modello di codice (Visual C#)