我知道“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 类)的瘦包装器、字符串操作类 0x251812231343142, ANSI21313140, ANSI25313140, ANSI243130转换等

ATL 的一部分被分支为托管在 CodePlex 上的开源 ATL Server 库。您仍然可以在 MSDN 上找到一些相关文档,将 ATL 版本选择回 Visual Studio 版本 2002/2003/2005。这主要包括 Web 开发、IIS 内容,还包括正则表达式之类的内容。

WTL 最初应该与 ATL 一起使用,并涵盖 GUI 相关方面,例如通用控件上的瘦包装器、GDI 对象、应用程序 GUI 框架、帧/视频模型、自定义控件。它在 ATL 开始这样做之前提供了 CString 类,这是两个库重叠的地方之一。在 WTL 开源并且微软提供了免费版本的 Visual Studio 之后,WTL 也被更新为可以在没有 ATL 的情况下使用,以便它可以帮助使用仅免费的工具构建应用程序。

关于c++ - ATL 和 WTL 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7816409/

10-13 06:24