理解ATL
来源:互联网 发布:国产车能买吗 知乎 编辑:程序博客网 时间:2024/06/05 16:05
1 ATL is just composed almost entirely of independent base classes that are "templatized", It has been said that the best thing about the ATL framework is that it isn't a framework at all . Indeed, if an ATL poster is ever published, the class layout will be very, very flat. the MFC is a framework, but ATL is not. because it's a dll, so it just has some functions to be called, example dllregister()....
2 MFC is linked to a project as a static library or a dll, but ATLis compiled as source code. Because there are no OBJ files to link to , ATL requires no run-time DLL redistribution.
3 MFC是一套类库,同时也是一套框架。
说是类库, 因为它有许多类, 而且各个类之间相互关联, 相互继承。
说是框架, 因为它各个类之间紧密配合,形成一套流水线,从程序的产生到灭亡, 都是一个固定的过程。
假如一个MFC EXE, 程序的启动过程都是使用的MFC类。
ATL是一套类库,但不是一套框架。
说是类库, 它有许多类,类与类之间没有任何关系, 都是独立的。
不是框架。
假如一个ATL DLL, 框架就是几个DLL标准函数, dllmain(), dllRegister()等等就是它的框架。而这些东西与 ATL没有关系。
4 总结起来,ATL比MFC简单, 它只是一套互相没有关系的类。 当你需要某个功能时,使用这个类就可以了。
5 智能指针, 其实是一个类, 一个包装类, 即生成一个类, 把你将要使用的指针包装起来, 包装的目的是为了克服dumb指针的一些缺点,比如忘记初始化, 计算引用计数等等。dumb指针作为智能指针的一个成员, 这样, 在类的构造函数中可以将它初始化。 这样使用智能指针的人如果忘记初始化也不会有问题。 生成一个成员变量用来计数。
智能指针中需要重载操作符operator->, 在其中返回它的dumb pointer。 这样智能指针的用户才能像使用dumb pointer一样来调用功能。否则整个包装都是失败的,因为客户使用了你的智能指针后却不能调对象的成员函数了。
6 proxy/stub. 在两个EXE之间需要它们。在同一个dll不同apartment也需要它们。
详情请见inside ATL 第四章 The Proxy/Stub Makefile部分。
- 理解ATL
- ATL 类的理解
- 理解ATL中的关键点
- ATL: 理解窗口特征(Window Traits)
- 理解ATL中的一些汇编代码
- 理解ATL中的一些汇编代码
- 理解ATL中的一些汇编代码
- COM的理解及ATL的运行
- atl
- ATL
- atl
- ATL
- ATL
- ATL
- ATL
- ATL
- ATL
- ATL
- CSS浏览器兼容问题整理
- 难点电路详解之负反馈放大器电路(1)
- 网络营销与推广手法探秘
- Linux下I2C设备驱动开发和实现(转)
- VB 布局随窗口大小改变
- 理解ATL
- 有关js方面知识的整理
- TCP/IP 详解 卷1 ch2 链路层
- 汇编指令 总结
- 第二章 缓冲区(8)
- swdd
- 代码之美:正则表达式
- USB 3G驱动和USB HOST驱动加载
- dwr基础