闡述增強(qiáng)Visual C++開(kāi)發(fā)環(huán)境的功能
對(duì)于官方推出的Visual C++是目前Windows平臺(tái)上***的C++集成開(kāi)發(fā)環(huán)境之一,有大量的應(yīng)用程序和軟件都是使用它來(lái)開(kāi)發(fā)出來(lái)的。VC的開(kāi)發(fā)環(huán)境提供了強(qiáng)大的功能,為開(kāi)發(fā)人員方便、快速、高效地開(kāi)發(fā)應(yīng)用給予了強(qiáng)有力的支持。
但是由于程序員各有各的特點(diǎn)和習(xí)慣,所以還可能會(huì)有很多對(duì)編程開(kāi)發(fā)環(huán)境不同的需要。VC的IDE集成開(kāi)發(fā)環(huán)境充分考慮到了這一點(diǎn),專(zhuān)門(mén)提供了對(duì)開(kāi)發(fā)環(huán)境進(jìn)行擴(kuò)展的功能,使得開(kāi)發(fā)員可以根據(jù)需要,通過(guò)一些編程開(kāi)發(fā)來(lái)增強(qiáng)VC開(kāi)發(fā)環(huán)境本身的功能。
Visual C++自動(dòng)化機(jī)制 
在使用VC來(lái)進(jìn)行開(kāi)發(fā)的時(shí)候,在VC的集成開(kāi)發(fā)環(huán)境里可以手工進(jìn)行很多操作,例如:使用菜單命令來(lái)打開(kāi)一個(gè)項(xiàng)目、修改源文件、保存文件,然后編譯連接得到可執(zhí)行的文件等等。這些操作大部分都是例行的、重復(fù)多次進(jìn)行的。 #t#
VC提供了一種Automation自動(dòng)化(來(lái)自以前的OLE自動(dòng)化)的擴(kuò)展機(jī)制。VC的開(kāi)發(fā)者可以通過(guò)開(kāi)發(fā)VBScript宏或者插件,讓IDE來(lái)自動(dòng)執(zhí)行一些操作。好處是顯然的:可以大大縮短這些操作的時(shí)間,而且還可以避免在手工操作可能出現(xiàn)的一些錯(cuò)誤,如遺漏、鍵入錯(cuò)誤等等。VBScript宏是使用VBScript語(yǔ)言寫(xiě)的一些程序,而插件則是使用VC或者Visual Basic開(kāi)發(fā)的COM構(gòu)件。
我們還可以使用VBScript宏和插件來(lái)對(duì)VC本身的界面進(jìn)行美化、改造,例如為VC的窗口加上頁(yè)簽(與Delphi的界面類(lèi)似)等等。
在宏或者插件里,Visual C++的集成開(kāi)發(fā)環(huán)境本身以及它的各個(gè)部件都可以作為對(duì)象來(lái)進(jìn)行操作。例如,通過(guò)操作與項(xiàng)目的文件對(duì)應(yīng)的對(duì)象,可以對(duì)某個(gè)文件進(jìn)行打開(kāi)、編輯和關(guān)閉等操作。類(lèi)似的,操作與IDE中的窗口對(duì)應(yīng)的對(duì)象,可以激活一個(gè)窗口、改變窗口的大小等等。
一個(gè)對(duì)象可以是集成開(kāi)發(fā)環(huán)境的一個(gè)部件,或者一組相關(guān)的部件。例如,一個(gè)Document文件對(duì)象表示一個(gè)打開(kāi)的文件,而Documents對(duì)象則表示所有打開(kāi)的文件。類(lèi)似,一個(gè)Window窗口對(duì)象表示一個(gè)打開(kāi)的窗口,而Windows對(duì)象表示所有打開(kāi)的窗口。Documents和Windows對(duì)象稱(chēng)為集合對(duì)象,它們包含了相關(guān)的一組對(duì)象。
每一個(gè)IDE環(huán)境的對(duì)象都實(shí)現(xiàn)了一個(gè)雙向的接口,提供了大量的方法、屬性和事件,在開(kāi)發(fā)VBScript宏和插件的時(shí)候需要使用這些方法、屬性和事件來(lái)操作這些對(duì)象。同時(shí),每一個(gè)對(duì)象為Automation機(jī)制實(shí)現(xiàn)了一個(gè)IDispatch接口和一個(gè)COM接口,來(lái)支持對(duì)對(duì)象成員(屬性、方法和事件)的訪問(wèn)。
為了更好地操作集成開(kāi)發(fā)環(huán)境的對(duì)象,必須知道這些對(duì)象之間的關(guān)系。對(duì)象之間有一個(gè)層次包含的關(guān)系。Application對(duì)象是最頂層的,其它的對(duì)象都是從屬于它的。有了這個(gè)關(guān)系,就可以使用Application對(duì)象的屬性和方法來(lái)直接訪問(wèn)它的所有下屬對(duì)象啦!VC集成開(kāi)發(fā)環(huán)境的對(duì)象以及它們之間的包含關(guān)系如下:
- Application
 - Application(Application也可以包含自己)
 - Projects
 - Project
 - Configurations
 - Configuration
 - Configurations(循環(huán))
 - Documents
 - Document
 - Window(一般窗口)
 - TextDocument
 - TextSelection
 - TextWindow
 - Window(文本窗口)
 - TextEditor
 - Windows
 - Debugger
 - Breakpoints
 - Breakpoint
 
例如,Breakpoints對(duì)象有一個(gè)Breakpoint對(duì)象作為它的屬性之一,也就是說(shuō)Breakpoints對(duì)象包含了一個(gè)或者多個(gè)Breakpoint對(duì)象。這樣就可以通過(guò)一個(gè)對(duì)象的屬性來(lái)訪問(wèn)它包含的所有下屬對(duì)象。反過(guò)來(lái),也可以通過(guò)一個(gè)對(duì)象的Parent屬性來(lái)訪問(wèn)它所屬的對(duì)象。 
Visual C++這種環(huán)境的對(duì)象封裝機(jī)制為我們開(kāi)發(fā)VBScript宏和插件來(lái)擴(kuò)展VC集成開(kāi)發(fā)環(huán)境的功能提供了極大的方便。下面就讓我們具體看看怎樣來(lái)開(kāi)發(fā)VBScript宏和插件,利用VC的Automation機(jī)制,增強(qiáng)Visual C++開(kāi)發(fā)環(huán)境的功能,以方便自己日常的開(kāi)發(fā)工作。 















 
 
 


 
 
 
 