首页 > 代码库 > WTL:下载、安装、初见

WTL:下载、安装、初见

简介

         WTL: Windows Template Library

         基于ATL对Win32 API的封装

         C++库,用于开发Windows应用程序和UI组件

         WTL功能不如MFC完善,但比MFC更小巧更有效率,不依赖MFC的DLL

         MFC支持doc/view架构,而WTL并不支持

         WTL不是微软的正式产品,没有微软的官方支持

         WTL也实现了CString、CRect、CSize、CPoint等常用的类

     WTL的CStaticT、CButtonT、CListBoxT、CComboBoxT等用起来和MFC版本也没太大不同。

        

下载安装

         WTL在VC各版本下的安装

         http://www.cppblog.com/goos/archive/2012/08/16/187424.aspx

         WTL7.1下载:http://pan.baidu.com/s/1o8mGGEe

 

         安装WTL7.1

     运行WTL71.exe,解压   

   技术分享      

     运行/WTL71/AppWiz60/setup.js

         技术分享 

     复制WTL71/include目录下的头文件到VC++6.0安装目录的 /VC98/Include下。

     运行VC++6.0,根据向导可以轻松的创建ATL/WTL AppWizard工程即可。

 

新建WTL工程

         打开VC++6.0,【File】->【New】

         技术分享

         技术分享 

         技术分享

         技术分享

         在产生的文件中可以看到WTL确实不支持Doc/View。

     WTL对单界面线程的封装:WTL使用一个_Module全局变量来保存全局数据,并通过它来引用应用程序级的代码。在WTL中,该变量是CAppModule的实例,对比MFC的theApp。

         技术分享

         入口函数名为_tWinMain()。当使用UNICODE时,编译器会将它替换为wWinMain(),否则,为WinMain()。入口函数其实就是主线程(_Module)的起始点,这和SDK,MFC一个道理。一个_Module还维持一个消息循环Map。

     技术分享

         该函数创建了一个CMessageLoop实例,该实例包含了这个线程的消息循环。这些消息循环都放在模块的全局消息循环中,通过线程的ID来索引。这样,该线程的其它代码就能访问得到。每一个应用程序维护一个消息循环队列Map,应用程序中的每个线程都通过"_Module.AddMessageLoop(&theLoop)",把该线程的消息循环加入到_Module的消息循环Map中。消息循环对象包含了消息过滤和空闲处理。每个线程都可以加入空闲处理代码和消息过滤。  

         再看stdafx.h

     技术分享 

         编译运行:

         技术分享

WTL:下载、安装、初见