WTL,ATL与MFC之比较

从零开始的WTL入门教程(1) WTL的简介,环境搭建 图文手把手教学系列 阅读详情

WTL,ATL与MFC之比较

分享
2005-01-27 11:05
MFC,ATL,WTL的历史沿袭

需求推动了技术的发展,从MFC到ATL,从ATL再到WTL的发展历程我想就是一个最好的见证。

早期的VC++开发者们发现了MFC(Microsoft Foundation Classes) 这样一个好东东。他们发现,MFC提供了一个强大的类库,很好的满足了面向对象编程的需要。随着泛型编程技术的发展和时间的推移,慢慢地,他们慢慢觉得MFC的类库过于庞大和宽泛,而且它提供的模板库只覆盖了很有限的领域。于是,ATL应运而生。

ATL(Active Template Library),简称活动模板库。ATL的设计者们通过它来它提供快速的COM组件封装。ATL很好地体现了用模板进行编程的思想。如果模板设计得当,就很容易灵活的适应各种不同的需求,而且更容易跟进新技术的发展需求。

但是,作为泛型编程的爱好者们始终要面对的一个主要难题,那就是如何方便地进行图形用户界面(GUI)设计。因为ATL只是提供了对Win32/64窗口的低级封装,因此ATL的使用者们在用ATL进行COM开发的同时,不得不借助于MFC来进行COM组件的UI编程。因为在GUI方面,ATL确实是爱莫能助。

WTL(Windows Template Library)在体现模板编程思想的同时,对模板进行了很好的高级封装,很好的满足了UI编程的各种需求。这也是WTL设计者们的用意所在。在用WTL生成应用程序的时候不需要将DLL文件与EXE文件一起交付给用户,而且,WTL又有很好的兼容性。你可以将它与ATL, STL, VC++ 数据模板,第三方模板,或者你自己的模板这几种中的任何一种一起使用。正因为这些特点,使得当前WTL成为了大部分高级的C++开发者们进行UI设计时的首选。

从代码的层面比较WTL与ATL

Win32/64 API 是由一系列C函数构成的集合,它覆盖了COM和Window编程的大部分领域。ATL是一系列的C++模板集,大部分是为COM编程服务的。Win32/64 API和ATL都只是提供了对于UI编程的低级支持。如ATL,WTL也是C++模板集,但是它很纯粹地集中于对UI编程的高级支持。

如下图所示,ATL调用Win32/Win64 API ,WTL调用ATL模板和Win32/Win64 API 。


WTL的功能体现和优势.

WTL当前是第二个版本,第一个是3.1版,第二是7.0版。WTL的功能主要体现在以下几个方面:

· 提供应用程序框架

· 提供对UI的高级支持

· 封装Window控件,系统对话框以及GDI对象

它的优势体现在:

  • 不包含复杂的文档/视图框架
  • 具有源于MFC的基本的UI特性
  • 提升了一些MFC的特性(例如,更加灵活的切分窗口)
  • 比静态链接MFC的代码要小的多
  • 可对WTL进行bug修正,而不影响已存在的应用程序(MFC中如果通过替换MFC/CRT的DLL来修正一个应用程序中的bug,往往会是另一应用程序崩溃)


WTL界面介绍 前 言 WTL 全称是 Windows Template Library,像 MFC 一样使用 C++ 的面向对象技术对 Win32 接口进行了封装,使之便于开发 Windows 程序。相对于 MFC 这个庞然大物,WTL 保持了小而美,只包含了界面开发相关的特性。 如果想在vs 2019 上安装wtl ,可以使用看如下文章: https://www.cnblogs.com/Lzl678/p/10771668.html WTL概述 WTL 是Windows Template Library 的缩写。最初,W 阅读详情

相关推荐

制作控件,ATLMFC,应该使用哪个

摘要目前MFCATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在它们对于开发ActiveX的用途上会合了。我们将看看这两种框架是如何适用于创建ActiveX控件的——突出其优缺点,亲自经历创建一个控件的过程——以便你能够决定何时使用一

Little Things 3350

atl wtl 简要介绍

WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的消息处理机制。当然,如果你也象我一样不希望自己的程序仅仅因为使用了MFC的框架就增加几百K的大小的话,WTL就是你的选择。

ATLWTL

ATL(Active Template Library)是基于COM技术的C++模板库,主要包含COM组件开发、窗口类和消息处理等功能。核心特性包括: 关键技术:COM组件模型、C++模板和多继承 窗口类体系:提供CWindow、CWindowImpl等类实现窗口创建和消息处理 对话框支持:通过CDialogImpl等类实现模式/无模式对话框 辅助工具:WTL Helper可快速生成控件和消息映射代码

赤龙绕月的专栏 977

MFC,ATL,WTL的历史沿袭

需求推动了技术的发展,从MFCATL,从ATL再到WTL的发展历程我想就是一个最好的见证。 早期的VC++开发者们发现了MFC(Microsoft Foundation Classes) 这样一个好东东。他们发现,MFC提供了一个强大的类库,很好的满足了面向对象编程的需要。随着泛型编程技术的发展和时间的推移,慢慢地,他们慢慢觉得MFC的类库过于庞大和宽泛,而且它提供的模板库只覆盖了很有限的

numbibi的专栏 1486

关于MFCATL

如果你希望用C++来写ActiveX®控件,有两个流行的框架,一个是Microsoft® Foundation Classes (MFC),另一个是ATL。我将深入的解释这两种框架对开发ActiveX控件所提供的支持,帮助你更好的决定哪种模型最适合你的开发环境和需求。 ActiveX控件的完全形态 ActiveX控件基于构件对象模型COM,使得ActiveX控件成为可

哈库纳的专栏 3413

【转】WTL,ATLMFC比较

需求推动了技术的发展,从MFCATL,从ATL再到WTL的发展历程我想就是一个最好的见证。 早期的VC++开发者们发现了MFC(Microsoft Foundation Classes) 这样一个好东东。他们发现,MFC提供了一个强大的类库,很好的满足了面向对象编程的需要。随着泛型编程技术的发展和时间的推移,慢慢地,他们慢慢觉得MFC的类库过于庞大和宽泛,而且它提供的模板库只覆盖了很有限的

499

MFCWTLATL、STL联系区别

MFCWTL 、ATL、STL联系区别    这个要先从C++和VC++说起!    c++是一门语言,它平台无关。只要能提供c++编译器(或者交叉编译器)的平台,就能用c++编程。基本上常见的操作系统都有C++编译器或交叉编译器,所以你可以认为几乎所有的平台都可以使用C++编程。   首先要明确,严格来说VC++不是语言,而是一个工具软件。他甚至不是编译器,而是一个开发环境(

学海无涯 2535

(转)WTL开发者指南(WTL Developer’s Guide翻译3)

第4章-WTL快速之旅目标该章的目标为Ÿ       介绍WTL中的模板(templates)和类(classes)Ÿ       列举WTL中没有包含的特性Ÿ       描述诸如WTL名称空间(namespace)、CRT和错误处理(error handling)Ÿ       列举WTL的宏(macros)Ÿ       看一下如何利用AUTOEXP.D

wangweixing2000 1774

WTL介绍

WTL简单介绍 关键词: WTL                                           WTL是一个好东东.它开发的程序都很短小精悍.对开发WIN32的应用有很好的优点.它不用MFC开发.但可以高速产生窗体和控件. 以文本方式查看主题-  温馨小筑  (http://www.learnsky.com/bbs/index.asp)-- ...

weixin_34365417的博客 145

ATLMFCWTL CString 的今生前世

话说CString这个东西困扰了很多年轻人,因为它会引起诡异的编译错误,今天跟着我一起来深入ATLWTL头文件,来把这个东西搞个清清楚楚。 【涉及到头文件】   ATL : atlstr.h, atlsimpstr.h   MFC : cstringt.h、afxstr.h   WTL : atlmisc.h   ATLMFC有关剪不断理还乱的关系,为了更

Chinamming的专栏 1563

创建有个性的对话框之ATL/WTL

输入您的搜索字词 提交搜索表单 前记 这几个嵌入类其实很早之间就完成了,2003年的时候我在CodeProject上发布了这些代码,不过当时使用了紫色作为按钮的边框,导致几个无聊的LY在哪里争吵

oRbIt 的专栏 1万+

MFC程序员的WTL开发指南之ATL界面类

导读   WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的消息处理机制。当然,如果你也象我一样不希望自己的程序仅仅因为使用了MFC的框架就增加几百K的大小的话,WTL就是你的选择。当然,我们还要克服一些障碍:  1) ATL样式的

★果冻★的专栏 2680
上一篇: inline函数必须在头文件中定义吗?
下一篇: 国内游戏产业现状十一谈
jack_incredible
博客等级 码龄17年 82粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值