您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:79 来源:vckbase.com

本文章共4585字,分3页,当前第1页,快速翻页:
 

COM 组件设计与应用(五)
用 ATL 写第一个组件

作者:杨老师

下载源代码
逆@风@者

一、前言

  1、如果你在使用 vc5.0 及以前的版本,请你升级为 vc6.0 或 vc.net 2003;
  2、如果你在使用 vc6.0 (ATL 3.0)请阅读本回内容;
  3、如果你在使用 vc.net(ATL 7.0)请阅读下回内容;(当然读读本文内容也不错)
  4、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接。
  5、下面......好好听讲! 开始了:-)


二、
建立 ATL 工程
  步骤2.1:建立一个工作区(WorkSpace)。
  步骤2.2:在工作区中,建立一个 ATL 工程(Project)。示例程序叫 Simple1,并选择DLL方式,见图一。


图一、建立 ATL DLL 工程

  Dynamic Link Library(DLL) 表示建立一个 DLL 的组件程序。
  Executable(EXE) 表示建立一个 EXE 的组件程序。
  Service(EXE) 表示建立一个服务程序,系统启动后就会加载并执行的程序。
  Allow merging of proxy/stub code 选择该项表示把“代理/存根”代码合并到组件程序中,否则需要单独编译,单独注册代理存根程序。代理/存根,这个是什么概念?还记得我们在上回书中介绍的吗?当调用者调用进程外或远程组件功能的时候,其实是代理/存根负责数据交换的。关于代理/存根的具体变成和操作,以后再说啦......
  Support MFC 除非有特殊的原因,我们写 ATL 程序,最好不要选择该项。你可能会说,如果没有MFC的支持,那CString怎么办呀?告诉你个秘密吧,一般人我都不告诉他,我后半辈子就靠着这个秘密活着了:
  1、你会STL吗?可以用 STL 中的 string 代替;
  2、自己写个 MyString 类,嘿嘿;
  3、悄悄地、秘密地、不要告诉别人(特别是别告诉微软),把 MFC 中的 CString 源码拿过来用;
  4、使用 CComBSTR 类,至少也能简化我们字符串操作;
  5、直接用 API 操作字符串,反正我们大家学习 C 语言的时候,都是从这里干起的。(等于没说,呵呵)
  Support MTS 支持事务处理,也就是是否支持 COM 功能。COM 也许在第 99 回介绍吧。


三、增加 ATL 对象类

  步骤3.1:菜单 Insert\New ATL Object...(或者用鼠标右键在 ClassView 卡片中弹出菜单)并选择Object 分类,选中 Simple Object 项目。见图二。


图二、选择建立简单COM对象

  Category Object 普通组件。其中可以选择的组件对象类型很多,但本质上,就是让向导帮我们默认加上一些接口。比如我们选 "Simple Object",则向导给我们的组件加上 IUnknown 接口;我们选 "Internet Explorer Object",则向导除了加上 IUnknown 接口外,再增加一个给 IE 所使用的 IObjectWithSite 接口。当然了,我们完全可以手工增加任何接口。
  Category Controls ActiveX 控件。其中可以选择的 ActiveX 类型也很多。我们在后续的专门介绍 ActiveX 编程中再讨论。
  Category Miscellaneous 辅助杂类组件。
  Categroy Data Access 数据库类组件(我最讨厌数据库编程了,所以我也不会)。

  步骤3.2:增加自定义类 CFun(接口 IFun) ,见图三。
 

本文章更多内容1 - 2 - 3 - 下一页>>
相关文章

MFC程序员的WTL指南: 中文版序言
不重起Windows直接更改IP地址
类似于FlashGet的悬浮框的制作
毫秒定时器
C :使用 Visual C 2005 的现代语言特色
IP Messenger 详细分析
可设置单元格颜色的ClistCtrl类
利用VC++开发ASP图像处理组件(二)
从 ADO 迁移到 ADO.NET(一)
获得 Win32 窗口句柄的更好的方法
编写多文档应用程序
PhotoShop插件开发之选区(Selection)
VC初学者入门系列之二:消息循环
定制调试诊断工具和实用程序——摆脱DLL“地
WMI 的一个实现
自绘按钮的实现
《系统飞狐》系列软件中的“系统监视器”开
定时显示远程计算机的桌面
一个实用的CToolBar扩展类CToolBarEx
简单实用的Xml解析类

相关评论


本文章所属分类:首页 VC++

  热门关键字: