共用方式為


HOW TO:使用 Visual C++ 程式碼模型管理程式碼 (Visual Basic)

更新:2007 年 11 月

Visual Studio 程式碼模型會提供 Automation 用戶端在專案中尋找程式碼定義及修改那些程式碼項目的能力。Visual C++ 則提供副檔名給核心程式碼模型,指定以 Visual C++ 專用的程式碼做為目標。

例如,如果 Language 屬性表示指定的程式碼項目是 Visual C++ 程式碼模型物件,且 Kind = vsCMElementClass,則您可以選擇使用 Visual Studio 程式碼模型的 CodeClass2 或 Visual C++ 程式碼模型的 VCCodeClass

下列程序會示範如何使用 Visual C++ 專用的程式碼模型來檢查並產生程式碼。

若要將註解加入至專案中的第一個檔案

  1. 在 Visual Basic 中建立 Visual Studio 增益集專案。

  2. 在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。

  3. 將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。

  4. 用下列程式碼取代 OnConnection 方法中的程式碼:

    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. 若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。

  6. 在 Visual Studio 整合式開發環境 (IDE) 中,開啟 Visual C++ 專案。

  7. 按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。

  8. 在專案的第一個檔案中檢查以程式設計方式加入的註解。

若要將新檔案加入至 Visual C++ 專案

  1. 在 Visual Basic 中建立 Visual Studio 增益集專案。

  2. 在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。

  3. 將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。

  4. 用下列程式碼取代 OnConnection 方法中的程式碼:

    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. 若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。

  6. 在 Visual Studio IDE 中,開啟 Visual C++ 專案。

  7. 按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。

    注意事項:

    如果 MyClass2.h 已經存在,則程式碼會失敗。

若要將功能加入至 file.h

  1. 在 Visual Basic 中建立 Visual Studio 增益集專案。

  2. 在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。

  3. 將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。

  4. 用下列程式碼取代 OnConnection 方法中的程式碼:

    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. 若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。

  6. 開啟 Visual Studio IDE 中的 Visual C++ 專案,然後將 file.h 加入其中。

  7. 按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。

  8. 檢查 file.h 中的插入程式碼。

若要顯示包含最上層程式碼項目的檔案

  1. 在 Visual Basic 中建立 Visual Studio 增益集專案。

  2. 在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。

  3. 將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。

  4. 將 OnConnection 方法中的程式碼取代為下列程式碼:

    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. 若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。

  6. 在 Visual Studio IDE 中,開啟 Visual C++ 專案。

  7. 按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。

    訊息方塊會顯示包含最上層程式碼項目的檔案名稱。

若要顯示所有最上層程式碼項目

  1. 在 Visual Basic 中建立 Visual Studio 增益集專案。

  2. 在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。

  3. 將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。

  4. 將 OnConnection 方法中的程式碼取代為下列程式碼:

    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. 若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。

  6. 在 Visual Studio IDE 中,開啟 Visual C++ 專案。

  7. 按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。

    訊息方塊會顯示最上層程式碼項目名稱。

請參閱

概念

Visual C++ 程式碼模型

使用程式碼模型探索程式碼 (Visual Basic)

使用程式碼模型探索程式碼 (Visual C#)