二、建立 ATL 工程
步骤2.1:建立一个解决方案。
步骤2.2:在 该解决方案中,新建一个 vc++ 的 ATL 项目。示例程序叫 Simple2,并选择DLL方式,见图一、图二。
图一、新建 ATL 项目
图二、选择非属性化的DLL组件类型
属性化 属性化编程,是未来的方向,但我们现在先不要选它。
动态链接库(DLL) 选择它。
可执行文件(EXE) 以后再讲。
服务(EXE) 表示建立一个系统服务组件程序,系统启动后就会加载并执行的程序。
允许合并代理/存根(stub)代码 选择该项表示把“代理/存根”代码合并到组件程序中,否则需要单独编译,单独注册代理存根程序。代理/存根,这个是什么概念?还记得我们在上回书中介绍的吗?当调用者调用进程外或远程组件功能的时候,其实是代理/存根负责数据交换的。关于代理/存根的具体变成和操作,以后再说啦......
支持 MFC 除非有特殊的原因,我们写 ATL 程序,最好不要选择该项。你可能会说,如果没有MFC的支持,那CString怎么办呀?告诉你个秘密吧,一般人我都不告诉他,我后半辈子就靠着这个秘密活着了:
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简单对象