三. ATL基本使用
这一部分将重点介绍ATL的基本使用过程。由于ATL已经被集成在Microsoft Visulal Studio的Visual C++(www.cppentry.com)开发环境中,因此要使用ATL必须先安装Visual C++(www.cppentry.com)。在下面的讨论中有关COM的基本知识请参阅有关的文档,这里不再详细说明。给出的图是在Microsoft Windows 98平台下Visual Studio 6.0的使用示意图。
使用ATL开发一个COM应用基本可以分为以下几个步骤:
创建一个新的ATL工程,并对工程的选项进行适当的配置。
向新创建的工程添加新的ATL类,并对该类进行一些初始配置工作。
根据COM应用的基本要求向新的ATL类加入新的接口定义,并实现相应的接口成员函数。
编译连接工程,注册COM应用。
下面将根据这些步骤依次介绍ATL的基本使用过程。
1. 创建工程
首先启动Visual C++(www.cppentry.com)集成开发环境,选择“File”菜单下的“New...”命令,在“New”对话框中选择“Project”页,如图1所示。
 图1 创建新工程界面示意图
选择“ATL COM AppWizard”项,这是创建ATL工程的AppWizard向导入口。然后在“Project name”编辑框中输入工程的名字,单击“OK”按钮,进入AppWizard对话框。如图2所示。
 图2 ATL COM AppWizard对话框示意图
在AppWizard对话框中主要的设置选项有:
COM服务程序的类型:
- 动态连接库(Dynamic Linking Library) 最终产生一个动态连接库(DLL)形式的COM服务程序;
- 应用程序(Executable application)最终产生一个可执行程序类型(EXE)的COM服务程序;
- NT服务(NT Service):产生一个以NT服务方式运行的COM服务程序。
允许嵌入Proxy/Stub代码。由Microsoft提供的MIDL编译IDL文件以后,将产生用于对象调度(Marshaling)的Proxy/Stub的代码。传统地,这部分代码与COM服务程序的代码是分离的,但是由于新的COM标准支持多线程环境下的COM对象服务,因此在动态连接库的COM服务程序中也要有Proxy/Stub的支持。为了支持在网络上的传输,ATL允许用户选择将Proxy/Stub的代码包括在生成的DLL代码中。这个选项在EXE和NT服务类型的COM应用条件下不可选。
允许支持MFC。由于ATL对除COM以外的基本的Windows编程(www.cppentry.com)方面的支持极为有限,同时许多程序员对MFC又非常熟悉,因此在ATL的工程设置中允许在ATL工程内部支持使用MFC,即可以使用MFC定义的类。这在一方面来看是非常方便的,特别是对于习惯于使用MFC的开发人员来说,能够使用MFC提供的各种功能强大的类的支持,而不必直接使用Windows SDK。从另一个方面来看,在ATL工程中使用MFC同时就丧失了ATL代码轻量级的特点。
支持MTS。MTS是Microsoft Transaction Server的缩写,它是Microsoft在COM技术方面的一个新的分支,这里不作详细说明。
完成上面的设置以后,可以选择FINISH完成工程的设置,ATL将创建相应的工程。
|