阐述增强Visual C 开发环境的功能
创始人
2024-06-20 11:21:34
0

对于官方推出的Visual C++是目前Windows平台上***的C++集成开发环境之一,有大量的应用程序和软件都是使用它来开发出来的。VC的开发环境提供了强大的功能,为开发人员方便、快速、高效地开发应用给予了强有力的支持。

   但是由于程序员各有各的特点和习惯,所以还可能会有很多对编程开发环境不同的需要。VC的IDE集成开发环境充分考虑到了这一点,专门提供了对开发环境进行扩展的功能,使得开发员可以根据需要,通过一些编程开发来增强VC开发环境本身的功能。

Visual C++自动化机制
在使用VC来进行开发的时候,在VC的集成开发环境里可以手工进行很多操作,例如:使用菜单命令来打开一个项目、修改源文件、保存文件,然后编译连接得到可执行的文件等等。这些操作大部分都是例行的、重复多次进行的。 #t#

VC提供了一种Automation自动化(来自以前的OLE自动化)的扩展机制。VC的开发者可以通过开发VBScript宏或者插件,让IDE来自动执行一些操作。好处是显然的:可以大大缩短这些操作的时间,而且还可以避免在手工操作可能出现的一些错误,如遗漏、键入错误等等。VBScript宏是使用VBScript语言写的一些程序,而插件则是使用VC或者Visual Basic开发的COM构件。

我们还可以使用VBScript宏和插件来对VC本身的界面进行美化、改造,例如为VC的窗口加上页签(与Delphi的界面类似)等等。

在宏或者插件里,Visual C++的集成开发环境本身以及它的各个部件都可以作为对象来进行操作。例如,通过操作与项目的文件对应的对象,可以对某个文件进行打开、编辑和关闭等操作。类似的,操作与IDE中的窗口对应的对象,可以激活一个窗口、改变窗口的大小等等。

一个对象可以是集成开发环境的一个部件,或者一组相关的部件。例如,一个Document文件对象表示一个打开的文件,而Documents对象则表示所有打开的文件。类似,一个Window窗口对象表示一个打开的窗口,而Windows对象表示所有打开的窗口。Documents和Windows对象称为集合对象,它们包含了相关的一组对象。

每一个IDE环境的对象都实现了一个双向的接口,提供了大量的方法、属性和事件,在开发VBScript宏和插件的时候需要使用这些方法、属性和事件来操作这些对象。同时,每一个对象为Automation机制实现了一个IDispatch接口和一个COM接口,来支持对对象成员(属性、方法和事件)的访问。

为了更好地操作集成开发环境的对象,必须知道这些对象之间的关系。对象之间有一个层次包含的关系。Application对象是最顶层的,其它的对象都是从属于它的。有了这个关系,就可以使用Application对象的属性和方法来直接访问它的所有下属对象啦!VC集成开发环境的对象以及它们之间的包含关系如下:

  1. Application   
  2. Application(Application也可以包含自己)   
  3. Projects   
  4. Project   
  5. Configurations   
  6. Configuration   
  7. Configurations(循环)   
  8. Documents   
  9. Document   
  10. Window(一般窗口)   
  11. TextDocument   
  12. TextSelection   
  13. TextWindow   
  14. Window(文本窗口)   
  15. TextEditor   
  16. Windows   
  17. Debugger   
  18. Breakpoints   
  19. Breakpoint 

例如,Breakpoints对象有一个Breakpoint对象作为它的属性之一,也就是说Breakpoints对象包含了一个或者多个Breakpoint对象。这样就可以通过一个对象的属性来访问它包含的所有下属对象。反过来,也可以通过一个对象的Parent属性来访问它所属的对象。

Visual C++这种环境的对象封装机制为我们开发VBScript宏和插件来扩展VC集成开发环境的功能提供了极大的方便。下面就让我们具体看看怎样来开发VBScript宏和插件,利用VC的Automation机制,增强Visual C++开发环境的功能,以方便自己日常的开发工作。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...