基于VisualC 6.0的Add-in编程实例
2008-04-09 04:10:17来源:互联网 阅读 ()
一、有关Visual C Add-In的常见问题
(1)什么是Visual C Add-In?它有什么用途?
总的来说,Visual C Add-In就是实现某些特定COM接口的组件对象,它可以嵌入Developer Studio集成开发环境中,并提供一些命令用于实现自动化任务,或者简化程序编写过程等等。
从程序员的角度来讲,一个Visual C Add-In基本上就是实现了IDSAddIn接口的COM对象。通过这个接口,Add-in能够掌管Developer Studio环境,并且执行特定的任务。
(2)如何编写Add-In?
最简单的办法是启动Visual C AppWizard,并且从项目类型中选择DevStudio Add-in Wizard,如下图。
(3)到哪里去找有关Add-In的编程资料和文档?
最完整的文档在MSDN中,位置是MSDN Library\Visual Studio Documentation\Using Visual C \Visual C User''s Guide\Automating Tasks in Visual C \Add-ins for Visual C Developer Studio。不同版本的MSDN可能在具体路径上有一些小差别。
(4)如何使用Add-In?
如果你获得了一个有用的Add-in,或者自己编写了一个,请按照如下的步骤安装它:
从Visual C 的主菜单中选择Tools | Customize,然后翻到Add-ins and Macro Files页面:
如果你的Add-in没有出现在列表中,则按Browse按钮,找到Add-in文件(注意要将默认的文件类型(*.dsm)改成(*.dll)):
稍候,Add-in将会出现在Add-ins and Macros列表中。确认Add-in左边的检查框处于选中状态,然后按Close。
回到集成环境,一般来说Add-in会在环境中增加一个新工具栏,上面列出这个Add-in可用的命令。现在你可以用这些命令按钮工作了。
(5)Add-in有什么优缺点?
Add-in是和开发环境集成在一起的,这意味着我们不用离开IDE就能利用Add-in完成工作,而不需要借助外部工具,这是Add-in的一大优点。因此,Add-in通常用来简化一些重复性的工作,提高程序员的工作效率。例如,某个名为AutoBuildNumber的Add-in可以在每次编译工程的时候自动将版本号加1;另外一个名为WndTabs的著名的Add-in(估计读者中部分人已经在使用它了)则提供了一个类似于Ultra-Edit的页面,让程序员可以快速在打开的文件中切换。
Add-in也有它的缺点,这表现在几方面。首先,如果你的目的是简化重复性的工作,并不一定非要编写Add-in不可:你可以首先考虑编写宏脚本(Macro Script)。脚本和Add-in一样具有访问完整的Developer Studio Object Model的能力,而且它的编写和维护更简单,所以也是个不错的选择。但是,脚本无法实现比较高级的功能,例如调用Win32 API等等;这时候你就该考虑Add-in了。
Add-In的另外一个缺点是它受限制于开发环境提供的接口。微软为Add-In提供了一组接口,你需要使用这些接口的属性和方法来完成实际的任务,如果某些特性是接口所不提供的,那么你也很难在Add-in中实现它们。要了解Add-in能做些什么和不能做什么,最好的办法就是熟悉Developer Studio对象模型,为此请参考MSDN。此外,Add-in无法(或很难)实现高级UI功能,比如Add-in所能实现的用户界面基本上就只有模态对话框而已;如果想自己建立一个窗口并且和IDE联系在一起,几乎是不可能的。像WndTabs这样的Add-in实现了一些特殊的技巧来突破这个限制,但它多多少少利用了一些Hacker手段,这并不为官方所支持,也就是说只要微软对Visual C 作一点小小的改动,它就可能完全失效;另外要自己摸索出这些技巧也是非常困难的,所以一般来讲并不推荐这种做法。
现在转入正题,介绍一下我根据Add-in文档资料作的一个具体例子。这个例子实现了四个有用的方法,下面我将一一介绍。
(1)Show Object Model
这个方法是学习文档的产物,因为我在阅读MSDN的时候,总想了解Add-in规范所提供的对象模型具体应该是什么样子的。于是有了这个方法,当你选择此项命令的时候,它会调出一个对话框,其中按照层次关系列出模型中的所有对象,以及它们各自具有的属性。
从图中你可以看到,模型最顶层是一个Application对象,它的名字为Microsoft Developer Studio,版本为6.0,其他属性也可以从图中很直观的查看。关于这些具体对象和他们之间的关系,请参考MSDN。
在实际编写Add-in的时候我发现这个方法也是非常有用的,因为它能够直观的告诉我:当前有哪些对象,以及对象的那些属性是可用的。这样我就节省了不少时间来在Visual C 和MSDN之间反复切换。
(2)Switch Between .H and .CPP
用过Borland C Builder的朋友应该很熟悉这个方法,比如当前打开了Test.cpp,用这个命令就能立刻查看对应的Test.h,反之亦然。Visual C 并没有实现类似的功能,所以我写了个方法来模拟C Builder。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash