我知道“WTL建立在ATL”上,但实际上意味着什么呢?
在特征方面,ATL是WTL的一个子集吗? (即ATL中的所有功能也存在于WTL中?)我注意到维基百科国家ATL的开发状态是“当前”,而WTL的最新版本是从2009年年中开始的.这是否意味着如果我想使用Glass / Aero和其他Windows 7功能编写Windows 7软件,那么我无法使用WTL? ATL怎么样?
在ATL和WTL中编写程序有什么表现/记忆差异?
解决方法
ATL是主要实现COM基础的Microsoft C库.它的一部分还针对ActiveX控件(这绝对不是整个库的主要目标),它还涵盖了相关的东西,如HWND(CWindow类)的薄包装,字符串操作类CString,CStringA,CStringW,ANSI / Unicode转换等
ATL的一部分被分支到CodePlex上托管的开源ATL Server库中.您仍然可以在MSDN上找到一些文档,选择ATL版本回到Visual Studio版本2002/2003/2005.这主要涉及Web开发,IIS的东西,还包括正则表达式.
WTL最初应该与ATL一起使用,并涵盖GUI相关方面,例如通用控件,GDI对象,应用程序GUI框架,框架/视频模型,自定义控件等上的薄包装器.它在ATL开始这样做之前提供了CString类,这是两个库重叠的事情之一. WTL开放之后,Microsoft和Microsoft提供了免费版本的Visual Studio,WTL也被更新为在没有ATL的情况下使用,以便使用免费的工具构建应用程序是有帮助的.