atl 向导生成的文件 和 组件的构成

 

表 ATL的工程结构

 

文件名

说明

ProjectName.cpp

它是主工程文件。里面包含了COM所需的支持函数,这些函数用来为你的组件提供宿主文件。

ProjectName.h

组件在宿主文件里的接口声明。MIDL编译器自动生成了该文件。

编译工程的IDL的文件就是为了生成该文件。

ProjectName.idl

你的工程的IDL文件。你可以在这里添加接口和方法定义。MIDL心编译器处理该文件并为工程生成一个类型库。对于每一个工程而言,只有一个IDL文件,所以工程里的所有组件共享该文件

ProjectName.tlb

宿主文件的二进制类型库。使用MIDL编译器编译IDL文件后就可以生成该文件。

ProjectName.def

它是Windows的定义文件。对于DLL工程而言,该文件包含了公开的入口点。ProjectName.def文件并不是为EXE工程而创建的。

ProjectName_i.c

它是编译完IDL文件后生成的文件,里面包含了在工程里对所有的ClSIDIID的定义。

ProjectName_p.c

它是工程的代理/占位程序(proxy/stub)代码。由MIDL编译器生成该文件

ProjectNamePS.mk

该命令行为工程的代理/占位DLL文件创建文件。

ProjectNamePS.dll

由上面的make文件生成的代理/占位DLL文件。

DLLDATA.C

代理/占位DLL文件工程的数据结构定义。

RESOURCE.H

工程的资源定义文件。

ProjectName.rc

工程的资源文件

STDAFX.HSTDAFX.CPP

ATL框架里的定义和包含信息

 

 

Object Wizard创建的文件

 

 

文件名

说明

ObjectName.hObjectName.cpp

对象的头文件和实现文件

ObjectName.rgs

对象的注册脚本。该文件包含了注册项目。组件可以通过它进行自注册

 

 

 

 

作为一个基本的、非集合的例子,这里的CComObjectRoot为你提供了InternalAddRef


InternalReleaseInternalQueryInterface等引用计数的内部管理方法;CComCoClass提供了对类工厂的支持;IMathIAdvancedMath为你提供了抽象的接口类。所有这些组合在一起生成了CMath类。ATL接着又深入一步。为了创建实例,它使用CMath作为CComObject的模板参数,使CComObjectCMath中派生出来。

 

IMath* pIMath = new CComObject<CMath>

转载于:https://www.cnblogs.com/cchyao/archive/2010/09/05/1818581.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值