COM 组件设计与应用(六)——用 ATL 写第一个组件(vc.net)
2006-07-22 22:56:14 来源:WEB开发网核心提示: 1、你会STL吗?可以用 STL 中的 string 代替;2、自己写个 MyString 类,嘿嘿;3、悄悄地、秘密地、不要告诉别人(特别是别告诉微软),COM 组件设计与应用(六)——用 ATL 写第一个组件(vc.net)(2),把 MFC 中的 CString 源码拿过来用;4、使
1、你会STL吗?可以用 STL 中的 string 代替;
2、自己写个 MyString 类,嘿嘿;
3、悄悄地、秘密地、不要告诉别人(特别是别告诉微软),把 MFC 中的 CString 源码拿过来用;
4、使用 CComBSTR 类,至少也能简化我们字符串操作;
5、直接用 API 操作字符串,反正我们大家学习 C 语言的时候,都是从这里干起的。(等于没说,呵呵)
支持 COM+ 1.0 支持事务处理的 COM+ 功能。COM+ 也许在第 99 回介绍吧。
三、添加 ATL 对象类
步骤3.1:菜单"项目\添加类..."(或者用鼠标右键在 项目中弹出菜单"添加\添加类...")并选择 ATL 简单对象。见图三。
图三、选择建立ATL简单对象
除了简单对象(只实现了 IUnknown 接口),还可以选择“ATL控件”(ActiveX,实现了10多个接口)......可以选择的组件对象类型很多,但本质上,就是让向导帮我们默认加上一些接口。在以后的文章中,陆续介绍吧。
步骤3.2:增加自定义类 CFun(接口 IFun) ,见图四。
图四、填写名称
其实,我们只需要输入简称,其它的项目会自动填写。没什么多说的,只请大家注意一下 ProgID 项,默认的 ProgID 构造方式为“项目名.简称名”。
步骤3.3:填写接口属性选项,见图 五。
图五、接口选项
线程模型 COM 中的线程,我认为是最讨厌,最复杂的部分。COM 线程和公寓的概念,留待后续介绍。现在吗......大家都选"单元"(Apartment),它代表什么那?简单地说:当在线程中调用组件函数的时候,这些调用会排队进行。因此,这种模式下,我们可以暂时不用考虑同步的问题。(注1)
更多精彩
赞助商链接