以文本方式查看主题 - 曙海教育集团论坛 (http://sun4.cn/bbs/index.asp) -- C++语言开发 (http://sun4.cn/bbs/list.asp?boardid=63) ---- 增强Visual C++开发环境_VC技术_C语言教程 (http://sun4.cn/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每次启动都会自动装载这个插件,你就可以使用这个插件提供的功能来为自己的应用开发服务了。 |