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
Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.
Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.
Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.
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
Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.
Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato (IDE) di Visual Studio.
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.
Esaminare i commenti aggiunti a livello di codice nel primo file del progetto.
Per aggiungere un nuovo file a un progetto Visual C++
Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.
Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.
Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.
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
Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.
Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio.
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
Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.
Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.
Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.
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
Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.
Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio a aggiungervi un file.h.
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.
Esaminare il codice inserito in file.h.
Per visualizzare i file che includono elementi di codice di primo livello
Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.
Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.
Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.
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
Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.
Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio.
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
Creare un progetto di componente aggiuntivo Visual Studio in Visual Basic.
Scegliere Aggiungi riferimento dal menu Progetto, quindi fare clic sulla scheda .NET e selezionare Microsoft.VisualStudio.VCCodeModel. Al termine, scegliere OK.
Aggiungere Imports Microsoft.VisualStudio.VCCodeModel all'inizio del file Connect.cs.
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
Scegliere Compila soluzione dal menu Compila per compilare il componente aggiuntivo.
Aprire un progetto Visual C++ nell'ambiente di sviluppo integrato di Visual Studio.
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
Individuazione di codice mediante il modello di codice (Visual Basic)
Individuazione di codice mediante il modello di codice (Visual C#)