以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- C++語言開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=63) ---- 增強Visual C++開發環境_VC技術_C語言教程 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=63&id=2435) |
-- 作者:wangxinxin -- 發布時間:2010-12-10 15:05:00 -- 增強Visual C++開發環境_VC技術_C語言教程 程序和軟件都是使用它來開發出來的。VC的開發環境提供了強大的功能,為開發人員方便、快速、高效地開發應用給予了強有力的支持。但是由于程序員各有各的特點和習慣,所以還可能會有很多對編程開發環境不同的需要。VC的IDE集成開發環境充分考慮到了這一點,專門提供了對開發環境進行擴展的功能,使得開發員可以根據需要,通過一些編程開發來增強VC開發環境本身的功能。 Visual C++的自動化機制 VC提供了一種Automation自動化(來自以前的OLE自動化)的擴展機制。VC的開發者可以通過開發VBScript宏或者插件,讓IDE來自動執行一些操作。好處是顯然的:可以大大縮短這些操作的時間,而且還可以避免在手工操作可能出現的一些錯誤,如遺漏、鍵入錯誤等等。VBScript宏是使用VBScript語言寫的一些程序,而插件則是使用VC或者Visual Basic開發的COM構件。 我們還可以使用VBScript宏和插件來對VC本身的界面進行美化、改造,例如為VC的窗口加上頁簽(與Delphi的界面類似)等等。 在宏或者插件里,VC的集成開發環境本身以及它的各個部件都可以作為對象來進行操作。例如,通過操作與項目的文件對應的對象,可以對某個文件進行打開、編輯和關閉等操作。類似的,操作與IDE中的窗口對應的對象,可以激活一個窗口、改變窗口的大小等等。 一個對象可以是集成開發環境的一個部件,或者一組相關的部件。例如,一個Document文件對象表示一個打開的文件,而Documents對象則表示所有打開的文件。類似,一個Window窗口對象表示一個打開的窗口,而Windows對象表示所有打開的窗口。Documents和Windows對象稱為集合對象,它們包含了相關的一組對象。 每一個IDE環境的對象都實現了一個雙向的接口,提供了大量的方法、屬性和事件,在開發VBScript宏和插件的時候需要使用這些方法、屬性和事件來操作這些對象。同時,每一個對象為Automation機制實現了一個IDispatch接口和一個COM接口,來支持對對象成員(屬性、方法和事件)的訪問。 為了更好地操作集成開發環境的對象,必須知道這些對象之間的關系。對象之間有一個層次包含的關系。Application對象是最頂層的,其它的對象都是從屬于它的。有了這個關系,就可以使用Application對象的屬性和方法來直接訪問它的所有下屬對象啦!VC集成開發環境的對象以及它們之間的包含關系如下: 例如,Breakpoints對象有一個Breakpoint對象作為它的屬性之一,也就是說Breakpoints對象包含了一個或者多個Breakpoint對象。這樣就可以通過一個對象的屬性來訪問它包含的所有下屬對象。反過來,也可以通過一個對象的Parent屬性來訪問它所屬的對象。 VC這種環境的對象封裝機制為我們開發VBScript宏和插件來擴展VC集成開發環境的功能提供了極大的方便。下面就讓我們具體看看怎樣來開發VBScript宏和插件,利用VC的Automation機制,增強VC開發環境的功能,以方便自己日常的開發工作。 VBScript宏 我們先來看一個具體的宏。下面是快速創建一個C/C++文件的VBScript宏。 從這個簡單的宏,我們可以看到: VC提供了兩種宏記錄的方法:正常宏記錄和快速宏記錄。 如果你想要記錄一個復雜的宏,而且要進行一些編輯,那就要使用正常的宏記錄了。錄制正常宏的過程如下:(1)選擇Tools菜單的Macro命令打開宏管理器,如圖1所示;(2)如果需要把宏加到一個新的宏文件里,點擊Options按鈕,點擊New File按鈕,然后在Macro File框里填入文件名字;如果需要把宏加到一個已有的文件里,則從Macro File的下拉框里選擇文件;(3)在Macro Name框里寫入宏的名字;(4)點擊Record按鈕;(5)在Add Macro對話框里寫入宏的描述,點擊OK按鈕;(5)執行需要記錄的動作,中間可以點擊Pause按鈕暫停或者繼續;(6)點擊Stop按鈕完成錄制,這時候VC將打開宏文件,并且把光標停在宏的起始點,你可以對宏進行檢查或者編輯。 圖1 在記錄或者編寫好宏以后,宏將被保存在一個文本文件-宏文件里。在你開始記錄或者編寫新的宏的時候,需要選擇宏文件。宏文件的擴展名為.DSM,包含了一個或者多個VBScript宏,數量看需要而定。宏文件的一般格式是:開始是對這個文件的一些描述,然后就是每個宏的具體定義。 在VC里使用宏文件需要先安裝。一旦安裝了以后,每次啟動VC的時候都會自動裝載這些宏,可以在所有的項目里使用,不依賴于項目。安裝宏文件的方法如下:(1)選擇Tools菜單的Customize命令;(2)選擇Add-ins and Macro Files頁簽,如圖2所示,如果宏文件的名字沒有出現在窗口里,則點擊Browse按鈕去定位。(3)在窗口里打勾選上需要安裝的宏文件即可;如果取消選擇某個宏文件,則會卸載這個宏文件。 圖2 圖3 VC插件 從VBScript宏與插件的這些區別可以知道:如果使用VBScript宏可以完成的任務,建議盡量使用VBScript宏,因為開發一個VBScript宏比開發一個插件要簡單得多、快得多。VC插件更適合于用來提供復雜的功能,例如:全局查找替換、保存所有的文件并編譯、把VC的窗口變成頁簽式界面(如圖4所示)等等。 圖4 開發插件的基本步驟如下: 其次,需要確定使用什么語言來開發插件。現在Visual C++、Visual Basic的4.0以上的版本都支持VC插件的開發。VC專門為插件開發提供了一個向導,可以幫你完成大部分的工作。如果使用Visual Basic的話,則需要使用一些類型庫來訪問VC集成開發環境的對象。因此,建議你使用VC來開發比較方便。 接著,需要創建一個插件的項目。使用VC的插件向導,向導將自動創建一個項目。如果使用VB來開發插件,最好以一個例子為基礎。 項目創建了以后,就需要編寫代碼了。如果使用了VC的插件向導或者以VB的一個例子為基礎的話,那么大部分代碼已經有了,你只需要加入具體處理的一些代碼即可。 然后,把項目編譯連接成DLL,可以把多個插件合并在一個DLL里。最后,在VC里安裝這個插件就可以使用了。運行命令行命令、點擊插件提供的工具條按鈕或者按插件提供的熱鍵就可以使用插件了。 VC 5.0以上的版本專門為插件的開發提供了一個插件向導。可以使用這個向導輕松、快速地生成插件的基本代碼,然后根據自己的需要進行修改。使用VC的插件向導進行插件開發的步驟如下: 圖5 這里需要簡單說明一下VC集成開發環境與插件之間的關系,如圖6所示。每一個插件都向外提供了兩個對象DSAddIn和Commands。VC的集成開發環境使用DSAddIn對象來裝載或者卸載一個插件,使用Commands對象來執行插件提供的功能。具體來說,VC是調用插件的DSAddIn對象的OnConnection方法來裝載插件的,這個方法還發布了插件向外提供的功能接口,如果插件包含了事件的處理,還把連接到VC集成環境的事件上。VC調用DSAddIn對象的OnDisconnection方法來卸載插件。Commands對象則包含了AddCommand所加入的每一個功能接口,編寫插件的時候必須為每一個功能接口編寫代碼。 圖6 最后,把插件編譯連接成DLL。安裝插件的方法是:(1)選擇Tools菜單的Customize命令;(2)選擇Add-ins and Macro Files頁簽,如果插件的名字沒有出現在窗口里,則點擊Browse按鈕去定位。(3)在窗口里打勾選上需要安裝的插件即可;如果取消選擇某個插件,則會卸載這個插件。插件安裝了以后,VC每次啟動都會自動裝載這個插件,你就可以使用這個插件提供的功能來為自己的應用開發服務了。 |