dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>文章内容
基于Visual C++ 6.0的Add-in编程实例
来源: blog 作者: snaill <
  最近我用了一些时间来学习如何编写用于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,如下图。


  (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++作一点小小的改动,它就可能完全失效;另外要自己摸索出这些技巧也是非常困难的,所以一般来讲并不推荐这种做法。

共2页。 1 2 8 :

上一篇:在VC中使用Windows管道技术编程   下一篇:深入浅出MFC文档/视图架构之基本概念
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·C语言学习
·C语言指针
·C语言数组排序小结
·c语言 最简单的推箱子游戏
·c语言 全国计算机编程大赛复赛试
·c语言 全国计算机编程大赛复赛试
·c++ 数组与指针
·C++中的内存管理(new、delete、
·如何用C语言开发DSP嵌入式系统
·如何用C语言开发DSP嵌入式系统
·Linux下C语言编程
·学习arm的话先看哪本书?
  相关文章
·在VC中使用Windows管道技术编程
·深入浅出MFC文档/视图架构之基本
·利用MFC文档视图框架编写打印程
·深入浅出MFC文档/视图架构之文档
·用VC++制作播放AVI视频流的动画
·深入浅出MFC文档/视图架构之文档
·基于Visual C++6.0的声音文件操
·深入浅出MFC文档/视图架构之视图
·VC中利用原始套接字实现网络监听
·使用SDL打造游戏世界之入门篇
·解读VC++编程中的文件操作API和C
·深入浅出MFC文档/视图架构之框架
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763