
ATL/ WTL
benny5609
普通得不能再普通的80年代后
展开
-
ATL布幔之下的秘密(3)
作者:Zeeshan Amjad译者:李马 (home.nuc.edu.cn/~titilima ) 原文出处: http://www.codeproject.com/atl/atl_underthehood_3.asp 介绍 如果你是个模板的高手,你就可以将ATL的学习作为一种享受。在这一节中,我将要尝试解释一些ATL使用的模板技术。我不能保证你读完本节后能成为一个模板高手,只能是尽我原创 2007-10-02 00:31:00 · 1237 阅读 · 0 评论 -
深入剖析WTL—WTL框架窗口分析 (6)
WTL对框架窗口的封装ATL仅仅是封装了窗口函数和提供了消息映射。实际应用中,需要各种种类的窗口,比如,每个界面线程所对应的框架窗口。WTL正是在ATL基础上,为我们提供了框架窗口和其他各种窗口。 所有的应用程序类型中,每个界面线程都有一个框架窗口(Frame)和一个视(View)。它们的概念和MFC中的一样。 图示是WTL的窗口类的继承图。 WTL框架窗口为我们提供了: 一个应用程序的标题,窗口原创 2008-03-26 14:47:00 · 898 阅读 · 1 评论 -
深入剖析WTL—WTL框架窗口分析 (3)
在上面的例子中,CDerived从CBase中派生出来。CDerived类通过定义一个WM_LBUTTONDOWN消息处理函数来改变CBase类代表的窗口的功能。 这样,CBase类的消息映射定义了一个ProcessWindowMessage()函数,而CDerived类的消息映射也定义了一个ProcessWindowMessage()函数。 那么,我们在窗口处理函数逻辑中怎样把这两个类的Proc原创 2008-03-26 14:35:00 · 881 阅读 · 0 评论 -
Learning WTL8.0 Part-1 Win32 vs. ATL Windows Programming
学习WTL可以有多种方式,当然如果有COM和ATL的知识背景最好不过,如果你有MFC编程背景却最为糟糕,除非你对MFC无所不知、无所不能(如果你不是MFC的ORACLE,那么最好忘却它) Learning WTL8.0 Part-1 Learning WTL8.0 Part-1 Win32 vs. ATL Windows Programming原创 2008-03-26 19:28:00 · 1258 阅读 · 0 评论 -
ATL3.0中的窗口类
原文出处: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/atlwindow.asp摘要:讨论Active Template Library (ATL) 3.0中的一些类,这些类围绕着Windows API建立了一个面向对象的编程框架,使用这个框架,可以简化Microsoft® Wi原创 2008-03-26 10:53:00 · 1047 阅读 · 0 评论 -
深入剖析WTL—WTL框架窗口分析 (4)
superclass superclass是一种生成新的窗口类的方法。它的中心思想是依靠现有的窗口类,克隆出另一个窗口类。被克隆的类可以是Windows预定义的窗口类,这些预定义的窗口类有按钮或下拉框控制等等。也可以是一般的类。克隆的窗口类使用被克隆的类(基类)的窗口消息处理函数。 克隆类可以有自己的窗口消息处理函数,也可以使用基类的窗口处理函数。 需要注意的是,superclass是在注册窗口类原创 2008-03-26 14:36:00 · 865 阅读 · 0 评论 -
c++中__declspec用法总结
P.P 的 [原创]c++中__declspec用法总结1. __declspec(align(16)) struct SS{ int a,b; }; 它与#pragma pack()是一对兄弟,前者规定了对齐的最小值,后者规定了对齐的最大值。同时出现时,前者优先级高。 __declspec(align())的一个特点是,它仅仅规定了数据对齐的位置,而没有规定数据实际占用的内存长度,当指定的数原创 2008-03-25 17:33:00 · 1390 阅读 · 0 评论 -
深入剖析WTL—WTL框架窗口分析 (5)
ATL对窗口消息处理函数的封装 在本节开始部分谈到的封装窗口的两个难题,其中第一个问题是怎样解决将窗口函数的消息转发到HWND相对应的类的实例中的相应函数。 下面我们来看一下,ATL采用的是什么办法来实现的。 我们知道每个Windows的窗口类都有一个窗口函数。 LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);原创 2008-03-26 14:37:00 · 935 阅读 · 0 评论 -
WTL目录
Windows Template Library - WTL version 7.0 文件名 主要内容 atlapp.h CMessageFilterCIdleHandlerCMessageLoopCAppModuleC原创 2008-04-08 16:05:00 · 1137 阅读 · 0 评论 -
WTL8.0 调用 ActiveX 控件 - (调用 Flash 控件,响应 Flash 控件的事件)
WTL调用ActiveX 以调用Flash控件为例:1.包含相关文件:#include #include 2.导入ShockwaveFlash类型库:#import "C:/WINDOWS/SYSTEM32/MACROMED/FLASH/Flash.ocx"using namespace ShockwaveFlashObjects;3.WinMain中进行初始化:AtlAxWinInit();原创 2008-04-08 16:55:00 · 2135 阅读 · 0 评论 -
WTL快速之旅
目标该章的目标为 介绍WTL中的模板(templates)和类(classes) 列举WTL中没有包含的特性 描述诸如WTL名称空间(namespace)、CRT和错误处理(error handling) 列举WTL的宏(macros) 看一下如何利用AUTOEXP.DAT来改进调试过程原创 2008-04-08 17:20:00 · 3425 阅读 · 0 评论 -
什么是WTL?
简介WTL 在开发者之间的悄悄传播已经超过一年了, 传闻它是基于ATL的,并在微软内部使用.这理所当然的引起了ATL开发者社区的主意.这些人从ATL1.1开始,就一直为ATL控件书写UI代码,但是他们发现,他们的所写的代码常常就是纯的Win32 GDI代码.我告诉您, WTL并没有多大不同.是不是让人失望? 不,因为ATL只是对COM进行了简单的封装,这也是ATL的强大之处. 是的,写ATL您必原创 2008-04-17 10:56:00 · 1133 阅读 · 0 评论 -
WTL体系结构(1)
绪论 WTL最终来了,而且提供了我所希望的功能.我在WTL Bytesize(译文)的文章列出WTL主要特征.在本文中,我将描述一下WTL的体系结构,同时我会给出一些简单的例子来演示如何使用它的那些特征.希望能够对您有所帮助. WTL应用程序的类型 WTL有好几种应用程序类型,供您在AppWizard选取. 下表对这些应用程序进行了描述. 这种弹性构成原创 2008-04-17 10:57:00 · 908 阅读 · 0 评论 -
WTL体系结构(2)
程序线程 跟ATL一样,WTL程序也需要一个_Module全局变量来保存全局数据,方便应用级代码访问.在WTL中,这个变量是CAppModule或CServerAppModule的实例,后者在程序同时作为一个COM服务器时用到.每个应用程序具有一个或者多个UI线程.WTL使用两种方式来管理这些线程. 如果应用程序只有一个UI线程(除了多线程SDI以外,其他程序类型默认只有一个UI线原创 2008-04-17 10:58:00 · 838 阅读 · 0 评论 -
WTL体系结构(3)
视图视图窗口看起来显得很简单:class CMyView : public CWindowImpl{public: DECLARE_WND_CLASS(NULL) BOOL PreTranslateMessage(MSG* pMsg) { pMsg; return FALSE; } BEGIN_MSG_MAP(CMyView)原创 2008-04-17 10:59:00 · 763 阅读 · 0 评论 -
WTL体系结构(4)
对话框ATL的对话框支持一向很好,对此WTL新增了通用对话框的封装. 本质上是为对话框加入了输入验证和回调函数. 比如, 你想在用户改变年Open对话框中的文件夹时有所动作,那么你应该从CFileDialogImpl继承一个类,实现OnFolderChange():class CMyFileDialog : public CFileDialogImpl{public: CMyFileDi原创 2008-04-17 10:59:00 · 808 阅读 · 0 评论 -
STL算法一览
一 函数对象:很多的算法中多使用了函数对象 二元函数对象,V1和V2为输入,V3为结果plus: transform(V1.begin(), V1.end(), V2.begin(), V3.begin(),plus());其他的二元函数对象:minus,multiples,divieds,modulus.二元断言函数对象,使用时需要bind2nd()或bind1st()来绑原创 2008-04-20 09:58:00 · 942 阅读 · 0 评论 -
深入剖析WTL—WTL框架窗口分析 (2)
ATL的消息处理宏消息映射的目的是实现ProcessWindowMessage()。ProcessWindowMessage()函数是窗口函数的关键逻辑。 一共有三种消息处理宏,分别对应三类窗口消息——普通窗口消息(如WM_CREATE),命令消息(WM_COMMANS)和通知消息(WM_NOTIFY)。 消息处理宏的目的是将消息和相应的处理函数(该窗口的成员函数)联系起来。 · 普通消息处理宏原创 2008-03-26 14:31:00 · 790 阅读 · 0 评论 -
ATL的GUI程序设计(4)
第四章 对话框和控件对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——对话框(Dialog Box)。我们可以在VC IDE的资源设计器中设计对话框资源,并在其上放置各种控件资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作对话框,以及如何操作对话框上的各种控件。题外话先ATL原创 2008-03-24 19:40:00 · 862 阅读 · 0 评论 -
ATL的GUI程序设计(4)
第四章 对话框和控件对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——对话框(Dialog Box)。我们可以在VC IDE的资源设计器中设计对话框资源,并在其上放置各种控件资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作对话框,以及如何操作对话框上的各种控件。题外话先ATL原创 2008-03-24 19:31:00 · 1255 阅读 · 0 评论 -
ATL布幔之下的秘密(4)
作者:Zeeshan Amjad译者:李马 (home.nuc.edu.cn/~titilima ) 原文出处: http://www.codeproject.com/atl/atl_underthehood_4.asp 介绍 到现在为止,我们还没有讨论过任何有关汇编语言的东西。但是如果我们真的要了解ATL底层内幕的话,就不能回避这一话题,因为ATL使用了一些底层的技术以及一些内联汇编语原创 2007-10-02 00:32:00 · 1055 阅读 · 0 评论 -
ATL布幔之下的秘密(1)
作者:Zeeshan Amjad译者:李马 (home.nuc.edu.cn/~titilima ) 原文出处: http://www.codeproject.com/atl/atl_underthehood_.asp 介绍 在本系列的教程中,我要讨论一些ATL的内部工作方式以及它所使用的技术。 在讨论的开始,让我们先看看一个程序的内存分布。首先,编写一个简单的程序,它没有任何的数原创 2007-10-02 00:30:00 · 2517 阅读 · 3 评论 -
ATL布幔之下的秘密(5)
作者:Zeeshan Amjad译者:李马 (home.nuc.edu.cn/~titilima ) 原文出处: http://www.codeproject.com/atl/atl_underthehood_5.asp 下载本文配套源代码介绍 很多人认为ATL只是用来编写COM组件的,其实你也可以使用ATL中的窗口类来创建基于窗口的应用程序。虽然你可以将基于MFC的程序转换为ATL,但原创 2007-10-02 00:33:00 · 1158 阅读 · 0 评论 -
ATL布幔之下的秘密(2)
作者:Zeeshan Amjad译者:李马 (home.nuc.edu.cn/~titilima ) 原文出处: http://www.codeproject.com/atl/atl_underthehood_2.asp 介绍 在本系列的教程中,我要讨论一些ATL的内部工作方式以及它所使用的技术,这是本系列的第二篇文章。 现在让我们来探究一些虚函数背后更加有趣的资料。为了和上文保持原创 2007-10-02 00:31:00 · 1281 阅读 · 0 评论 -
COM线程模型
线程模型是一种数学模型,专门针对多线程编程而提供的算法,但也仅是算法,不是实现。本文讲解COM提出的各个类型的线程模型,再说明COM运行时期库是如何实现它们的,就像说明Windows是如何实现线程这个数学模型的一样,最后指明一下跨套间调用和各种类型套间编写的要求以帮助理解。希望读者对于Windows操作系统的线程这个概念相当熟悉,对何谓“线程安全的”亦非常了解。COM线程模型 COM原创 2007-11-01 16:34:00 · 693 阅读 · 0 评论 -
高手COM与ATL的学习参考书(转)
首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究和广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文和大家探讨一下学习它们的路径,以让后来人少走弯路。我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点和理论才能真正懂得其精髓。那样才能在发生错误的时候,依靠自己的知识解决问题。我个人原创 2007-11-01 17:55:00 · 917 阅读 · 0 评论 -
理解 COM 套间
简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件。那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网到处找别人的源码解决自己的问题;那段日子到现在回忆起来都是灰色的,每天呆坐在电脑前,一个网站一个网站的查找自己需要的源码。但并不清楚自己到底在做什么;那时候对自己能不能成为一个程序员充满了怀疑。在实习结束返校的火车上,一夜间,我把一本《COM本质原创 2007-11-01 16:36:00 · 1126 阅读 · 0 评论 -
Is COM Dead?
Don Box A原创 2007-11-01 16:57:00 · 1645 阅读 · 0 评论 -
COM原理及应用---- COM特性
1、面向对象系统的三个最基本的特性 封装性、多态性、重用性。 2、COM特性的概述COM对象的封装特性是很彻底的,所有的对象状态信息必须通过接口才能访问;而COM的多态性完全通过接口体现出来,而且,COM分别在三个层次上体现了多态性:接口成员函数、单个接口、一组接口(对象类别即implemented category)。而COM的重用性相对复杂。 3、重用性原创 2008-02-27 20:20:00 · 716 阅读 · 0 评论 -
手动编写以DLL为载体的COM
乡村爱情2全集下载寒假生活马上就要结束了,身边的同学都返校了。假期如此短暂,短暂得让人措手不及。最近看完乡村爱情2后,也没什么好看的了。心情还是挺好的,毕竟我还能再疯几天,哈哈。前两天号还丢了,这给我郁闷的。不过在我的努力之下又找回来了,哈哈。这假期过得乡村爱情2全集下载舒服啊,除了玩还是玩啊。不过开学就不能这样了,我还要学习啊。还是说说乡村爱情吧,我最喜欢的还是刘能。虽然他平时爱贪点小乡村爱情2原创 2008-02-27 20:46:00 · 778 阅读 · 0 评论 -
COM原理及应用---- 用Visual C++开发COM应用
COM原理及应用---- 用Visual C++开发COM应用1、MFC和ATL 对于COM应用的开发来说,建立一套标准的、有能够不断发展的类库是非常有意义的,这样可以实现程序的重用性。Microsoft Visual C++提供了两套满足这样需要的类库:MFC库和ATL模板库。MFC不仅可用于建立COM应用,它更是一套Windows平台上各种应用开发的基本类库,而ATL则主要侧重于原创 2008-03-03 11:32:00 · 1535 阅读 · 1 评论 -
com编程入门
本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。 COM即组件对象模型,是Component Object Model 取前三个字母的缩写,这三个字母在当今Windows的世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础。各原创 2008-03-03 17:45:00 · 712 阅读 · 0 评论 -
ATL的GUI程序设计(前言)
google_ad_client="pub-6065469188450680";google_ad_width=728;google_ad_height=90;google_ad_format="728x90_as";google_ad_type="text_image";google_ad_channel="6872543818";没去旅游,上午出去逛了一圈,买了原创 2008-03-24 16:34:00 · 768 阅读 · 0 评论 -
ATL的GUI程序设计(1)
第一章 不能免俗的“Hello, World!”在这一章里,就像所有的入门级教程一样,我也将不能免俗地以一个“Hello, World!”程序开始我的教程。然后,我将逐步深入,向你介绍这个ATL版本程序中所有必要的信息。此外,我还将介绍一些Win32中你可能不知道的东西,包括WinMain的_t兼容以及如何在MessageBox中加入自己的图标等等。接近,接近,再接近……可以说,所有“原创 2008-03-24 17:31:00 · 786 阅读 · 0 评论 -
ATL的GUI程序设计(2)
第二章 一个最简单窗口程序的转型我知道,可能会有很多朋友对上一章的“Hello, World!”ATL版不以为然,因为它并不能算是什么ATL程序——毕竟它只不过是有了个CComModule而已。不过不管怎样我还是要说,它几乎仍然拥有了一个ATL GUI程序的所有组成部分:入口、初始化、程序体、卸载……“等等!”也许你会突然打断我,“——还有注册窗口类、消息循环呢?”当然,对于一个完整的原创 2008-03-24 17:43:00 · 814 阅读 · 0 评论 -
ATL的GUI程序设计(3)
第三章 ATL的窗口类CWindowImpl、CWindow、CWinTraits,ATL窗口类的奥秘尽在此三者之中。在本章里,李马将为你详细解说它们的使用方法。另外,本章的内容也可以算是本书的核心部分——如果你要进行ATL的GUI程序设计的话,就必须将ATL的窗口类设计理念了然于心。窗口的组成把ATL的窗口类撇开不谈先。我在上一章中提到:窗口类并非任何一种OOP语言中的类——它所包括原创 2008-03-24 19:30:00 · 837 阅读 · 0 评论 -
ATL Windowing中的汇编:_stdcallthunk分析
1. 指令指针寄存器与正在执行指令指针关系: I: CPU正在执行指令; xIP: CPU指令指针寄存器内容; xIP(I): CPU正在执行的指令I的指针; LEN(I): 指令I的长度。 1)顺序执行:xIP = xIP(I) + LEN(I)原创 2008-06-30 11:09:00 · 1865 阅读 · 0 评论