敬业的IT人 >> 编程开发 >> C/C++ >> Visual C++ 6 Add-in编程实例

Visual C++ 6 Add-in编程实例

敬业的IT人 互联网 佚名 2008-1-3 19:29:45

源码下载

  最近我用了一些时间来学习如何编写用于Visual C++6.0的Add-In。这是一个有趣的问题,不过总的来说,有关这方面的文档和样例程序仍然比较缺乏(中文的更加罕见)。因此我决定把自己学习过程中的一些心得写出来,和大家共享。

  一、有关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,如下图。

Visual C++ 6 Add-in编程实例(图一)
点击查看大图

  (3)到哪里去找有关Add-In的编程资料和文档?

  最完整的文档在MSDN中,位置是MSDN Library\Visual Studio Documentatiborder="0" alt="Visual C++ 6 Add-in编程实例(图二)" width="581" height="359" />

  如果你的Add-in没有出现在列表中,则按Browse按钮,找到Add-in文件(注意要将默认的文件类型(*.dsm)改成(*.dll)):

  • 如何重装xp系统图解
  • 下载Flash播放插件
  • 巧妙清除Windows 2000/XP登录密码
  • 如何利用路由器设置局域网
  • QQ空间打不开
  • 开机后鼠标不动怎么办
  • Excel密码保护的解除方法与解除原理
  • Windows XP注册表详解
  • 3dmax不锈钢金属材质的制作方法
  • 硬盘变成raw格式怎么办

  稍候,Add-in将会出现在Add-ins and Macros列表中。确认Add-in左边的检查框处于选中状态,然后按Close。

Visual C++ 6 Add-in编程实例(图四)

  回到集成环境,一般来说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了。

  关于程序代码并没有很特殊的地方,所以我也不打算讲解它们,如果你有不明白的地方,参考源代码即可。即便如此,代码仍然提供了一些有趣的东西,例如简化查询接口属性和方法的模板函数、CComDispatchDriver对象的使用、在对话框中嵌入工具栏、定制绘画(Custom Draw)的列表控制、注册表查询函数等,它们中许多方法都是可重用或可借鉴的。具体内容请查阅相关的代码。

  三、关于程序的说明和结论

  因为这个程序目前还只是草稿,如果你对Add-in编程感兴趣的话,那么它提供了一个良好的起点;即使你不愿意自己编写的话,上面列出的几项功能也可能对你的日常编程任务有所帮助。Add-in编程是一个有趣的领域,在这里你可以和每日相伴自己的集成开发环境同呼吸共命运,并且在Visual Studio.Net 2002和Visual Studio.Net 2003中这个模型还在不断变化和增强。本文的例子是以Visual C++ 6.0完成的,但是在后续的版本中仍有参考价值。如果你想进一步了解关于Add-in的更多资料,请参考MSDN Online、CodeGuru和CodeProject等几个著名的Visual C++编程站点,相信你一定能够提高自己编写Add-in的能力。

进入讨论组讨论。
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com