65.9K
CodeProject 正在变化。 阅读更多。
Home

WTL 的简易安装

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.25/5 (4投票s)

2001年3月8日

viewsIcon

223312

downloadIcon

2987

本文介绍一种下载和安装 WTL 的替代、更简单的方法。

最新消息!

请查看 Michael Dunn 的《MFC 程序员的 WTL,第一部分 - ATL GUI 类》(初学者版),其中包含对较新 WTL70.exe 的引用,该文件可以轻松下载并自解压(WinZip)。该文章还展示了 ATL 和 WTL 的初步使用。据说这篇文章是针对 MFC 程序员的,但对于只有 ATL 经验的人或“硬核 Petzold 追随者”来说也同样适用。这些文章简直太棒了。真希望我几年前开始接触 ATL 和 WTL 时能读到这样的文章。

请不要关注以下文本。它已经非常过时,现在应该被忽略了。最后一次更新是在将近两年前(2001年4月3日)。我之所以保留以下内容不变,仅仅是因为有些其他文章会引用到它(并记录历史 ;-)。

由于可以在“MSDN Online Downloads”页面上下载到自解压压缩包文件 wtl31.exe,因此下文明显已过时。感谢 Gavin Jerman 在此发布通知,也感谢 Nenad Stefanovic 提供了 wtl31.exe

  Hi everybody,

  In addition to the Platform SDK, WTL 3.1 is now also available on the
  MSDN Downloads. Just go to http://msdn.microsoft.com/downloads,
  and find WTL under the "Visual Studio, Tools and Languages" \ "Visual C++"
  category.

  Enjoy,
  Nenad

据我所知,自解压压缩包文件是在 2001 年 3 月 23 日发布的,大小为 317,880 字节。虽然以下方法仍然有效,但本文从现在起只是一段历史,并将默默消失。我将建议 Ben Burnett 将本文合并到他的《WTL 入门 - 第一部分》中,因为在那里它更合适。  原文如下。

引言

Ben Burnett 的文章《WTL 入门 - 第一部分》包含了 WTL 的基本信息。其中“您在哪里获取它?”部分展示了从 Platform SDK 网站下载最新版 WTL 的标准方法。

本文介绍的是下载和安装 WTL 的替代方法,对于互联网连接速度慢的用户来说,这种方法痛苦更少。只需几个步骤,即可在您的工作目录中生成 WTL 子目录。然后,您可以将其内容复制到 WTL 文件的常用子目录,如 C:\Program Files\Microsoft Visual Studio\VC98\WTL

动机

WTL(Windows Template Library)包含大约 900 KB 的头文件。获取这些文件是开始使用 WTL 的必要且充分条件。此外,您可能还想使用 ATL/WTL 向导 - 其二进制形式的大小约为 250 KB。初期有用的还有示例。2000 年 10 月的 Platform SDK 在 BmpViewGuidGenMdiDocVwMTPad 子目录中包含四个示例。源代码大小约为 180 KB。

总而言之,所有必需的文件大约需要 1.3 MB(以获得完整的 WTL 安装)。必须下载的 CAB 文件加起来不到 1 MB。即使在互联网连接速度非常慢的情况下,这也完全可以接受。问题在于标准的 Platform SDK 安装程序需要下载更多数据。通过 56k 或更慢的调制解调器连接,这非常痛苦且耗时。如果连接线路不可靠,几乎是不可能的。

那么,替代方法是什么?

这个想法基于使用 FTP 协议手动下载一个或两个 CAB 文件。通过浏览器(如 Microsoft Internet Explorer)单击下面的链接也可以做到。您还可以下载本文顶部的那个小 zip 文件。它包含一个批处理文件。然后运行批处理文件,即可获得包含所有必要文件的 WTL 子目录。您只需要下载大约 900 KB 的数据。

步骤

将所有下载的文件放在一个工作目录中。那里不会发生什么特别的事情。文件只会提取到工作目录的子目录中。其他目录将不受影响。这些步骤已在 2000 年 10 月发布的 Platform SDK(WTL 版本 3.1)上进行了测试。

  1. 下载 ftp://ftp.microsoft.com/developr/PlatformSDK/Oct2000/psdk-common.48.cab 文件。它包含 WTL 头文件和示例。CAB 文件的大小约为 890 KB。对于 Windows 9x,请参见编号步骤后面的文本。
  2. 下载 ftp://ftp.microsoft.com/developr/PlatformSDK/Oct2000/psdk-x86.48.cab 文件。它包含 ATL/WTL 向导。不是必需的,但 CAB 文件的大小仅约为 40 KB。所以为什么不呢。对于 Windows 9x,请参见编号步骤后面的文本。
  3. 下载本文开头链接的 WTLinst.zipWTLinst9x.zip 压缩包文件。(非常小,只有 2 KB。)
  4. 使用例如 Info-ZIP 的免费解压工具解压下载的压缩包文件 WTLinst.zipWTLinst9x.zip。下载的压缩包包含一个批处理文件。
  5. 将解压出的批处理文件和一两个 CAB 文件放在同一个工作目录中,然后分别运行 WTLextract.batWTLextr9x.bat
    • 警告! WTLextract.bat 在 Windows 9x 上无法工作,而 WTLextr9x.bat 在 Windows NT 上无法工作。
  6. 将创建的 WTL 子目录的内容复制到所需位置,并确保 VC++ 编译器可以搜索到包含头文件的 Include 子目录。

是不是很简单?

Windows 9x 注意事项:如果您在将 CAB 文件存储到磁盘时遇到问题(因为文件名中包含两个点),请将其存储为 wtl1.cabwtl2.cab。如果您使用原始文件名存储,WTLinst9x.bat 批处理文件会将其重命名以避免在 Windows 9x 上使用提取实用程序时出现问题。新名称被视为原始 CAB 文件的同义词。

它内部是如何工作的?

嗯,您可以查看批处理文件 ;-)。好的,这里是内部魔法的一个片段。实际上,它展示了从 psdk-common.48.cab CAB 文件中提取所有 WTL 头文件的所有重要操作。

extract /L WTL/Include psdk-common.48.cab *.A1000D79*

cd WTL\Include

rename AtlApp_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C    AtlApp.h
rename AtlCrack_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlCrack.h 
rename AtlCtrls_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlCtrls.h 
rename AtlCtrlw_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlCtrlw.h 
rename AtlCtrlx_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlCtrlx.h
rename AtlDdx_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C    AtlDdx.h
rename AtlDlgs_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C   AtlDlgs.h
rename AtlFrame_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlFrame.h
rename AtlGdi_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C    AtlGdi.h
rename AtlMisc_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C   AtlMisc.h
rename AtlPrint_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlPrint.h
rename AtlRes_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C    AtlRes.h
rename AtlScrl_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C   AtlScrl.h
rename AtlSplit_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C  AtlSplit.h
rename AtlUser_h.A1000D79_C485_4CB3_8AB0_B6D38ED2B38C   AtlUser.h

提取实用程序是 Windows 的一部分。选项确保 WTL/Include 是提取文件的目录。如果子目录不存在,它们将被创建。文件掩码 *.A1000D79* 与 WTL 头文件相关。提取文件的完整名称在重命名命令部分可见。它们被重命名为原始 WTL 名称。

Windows 9x 的安装批处理文件更加晦涩,因为提取实用程序找不到文件名中带有两个点的 CAB 文件,而且它还会将提取的文件名截断为 8.3 格式。必须先重命名 CAB 文件,并且必须将提取过程分成多个部分,因为一些文件名在缩短为 8.3 格式时会重叠。我曾努力使用 extrac32 实用程序而不是 extract,但未能成功。这可能是因为 extrac32 被视为 Windows 程序,并且是异步执行的。如果您知道如何使用 extrac32 解决问题,我将非常乐意接受并在此嵌入解决方案(在接下来的致谢中仍有一些空间 ;-)。

致谢

首先,我想感谢 WTL 的作者。我还要感谢 Ben Burnett 向所有 WTL 初学者展示 您在哪里获取它?,感谢 Michael Fink 发布了 ATL/WTL 向导的存放位置,感谢 Mehmet Ozgul 发布了与 Windows 9x 相关的问题,感谢 John Noland 提供了 Windows 9x 的 8.3 问题解决方案,并添加了提取另一个示例(BmpView)的命令,以及感谢许多其他人一直证明缺乏官方 WTL 支持并不意味着 WTL 很糟糕。最后,我想感谢 CodeProject 上的那位,他纠正了我的英语拼写错误,并花费时间进行更新。

© . All rights reserved.