HOW TO:使用 Visual C++ 程式碼模型管理程式碼 (Visual Basic)
Visual Studio 程式碼模型會提供 Automation 用戶端在專案中尋找程式碼定義及修改那些程式碼項目的能力。Visual C++ 則提供副檔名給核心程式碼模型,指定以 Visual C++ 專用的程式碼做為目標。
例如,如果 Language 屬性表示指定的程式碼項目是 Visual C++ 程式碼模型物件,且 Kind = vsCMElementClass,則您可以選擇使用 Visual Studio 程式碼模型的 CodeClass2 或 Visual C++ 程式碼模型的 VCCodeClass。
下列程序會示範如何使用 Visual C++ 專用的程式碼模型來檢查並產生程式碼。
若要將註解加入至專案中的第一個檔案
在 Visual Basic 中建立 Visual Studio 增益集專案。
在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。
將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。
用下列程式碼取代 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
若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。
在 Visual Studio 整合式開發環境 (IDE) 中,開啟專案 Visual C++。
按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。
在專案的第一個檔案中檢查以程式設計方式加入的註解。
若要將新檔案加入至 Visual C++ 專案
在 Visual Basic 中建立 Visual Studio 增益集專案。
在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。
將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。
用下列程式碼取代 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
若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。
在 Visual Studio IDE 中,開啟 Visual C++ 專案。
按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。
注意事項 如果 MyClass2.h 已經存在,則程式碼會失敗。
若要將功能加入至 file.h
在 Visual Basic 中建立 Visual Studio 增益集專案。
在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。
將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。
用下列程式碼取代 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
若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。
開啟 Visual Studio IDE 中的 Visual C++ 專案,然後將 file.h 加入其中。
按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。
檢查 file.h 中的插入程式碼。
若要顯示包含最上層程式碼項目的檔案
在 Visual Basic 中建立 Visual Studio 增益集專案。
在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。
將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。
將 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
若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。
在 Visual Studio IDE 中,開啟 Visual C++ 專案。
按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。
訊息方塊會顯示包含最上層程式碼項目的檔案名稱。
若要顯示所有最上層程式碼項目
在 Visual Basic 中建立 Visual Studio 增益集專案。
在 [專案] 功能表上按一下 [加入參考],再按一下 [.NET] 索引標籤,然後選取 [Microsoft.VisualStudio.VCCodeModel],之後按一下 [確定]。
將 Imports Microsoft.VisualStudio.VCCodeModel 加入至 Connect.vb 檔案的最上方。
將 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
若要建置增益集,請按一下 [建置] 功能表上的 [建置方案]。
在 Visual Studio IDE 中,開啟 Visual C++ 專案。
按一下 [工具] 功能表上的 [增益集管理員],然後從 [增益集管理員] 對話方塊中選取增益集。按一下 [確定],執行您的增益集。
訊息方塊會顯示最上層程式碼項目名稱。