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

在 Visual C++ 2005 Express Edition 中使用 WTL

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.87/5 (32投票s)

2006年1月13日

CPOL

2分钟阅读

viewsIcon

535739

downloadIcon

1912

本文档解释了在 Visual Studio 2005 Express Edition 中使用 WTL 的步骤。

引言

Visual C++ 2005 Express Edition 于 2005 年 11 月 7 日发布。它拥有出色的原生 C++ 编译器和智能编辑器。最重要的是它是免费的。我们可以免费使用它进行 WTL 编程。我于 2005 年 11 月 9 日在 这里 发布了相同的步骤。现在,我将其提交给 CodeProject。

循序渐进

  1. MSDN 下载并安装 Visual C++ 2005 Express Edition。
  2. 下载并安装 Platform SDK,并按照 这里 的详细说明更新 Visual C++ 设置。
  3. 在“选项”对话框的“项目”部分中更新 Visual C++ 目录。将 ATL 路径添加到包含文件(显示的路径为默认路径,请使用指向实际位置的路径)。
    C:\Program Files\Microsoft Platform SDK\include\atl
  4. 按照以下方式修改 Platform SDK 安装目录的 ATL 文件夹中的 atlwin.hatlbase.h 文件
    • 修改 atlwin.h 文件第 1725 行的 SetChainEntry 函数 - 在函数体第一行定义“int i”。
      BOOL SetChainEntry(DWORD dwChainID, CMessageMap* pObject, DWORD
      dwMsgMapID = 0)
      {
          int i;
          // first search for an existing entry
          
          for(i = 0; i < m_aChainEntry.GetSize(); i++)
    • atlbase.h 文件第 287 行的 AllocStdCallThunkFreeStdCallThunk 修改为新的宏。
      /* Comment it
      PVOID __stdcall __AllocStdCallThunk(VOID);
      VOID __stdcall __FreeStdCallThunk(PVOID);
      
      #define AllocStdCallThunk() __AllocStdCallThunk()
      #define FreeStdCallThunk(p) __FreeStdCallThunk(p)
      
      #pragma comment(lib, "atlthunk.lib")
      */
      #define AllocStdCallThunk() HeapAlloc(GetProcessHeap(), 
                                    0, sizeof(_stdcallthunk))
      #define FreeStdCallThunk(p) HeapFree(GetProcessHeap(), 0, p)
  5. SourceForge 下载并安装 WTL。
  6. 从此页上方链接下载适用于 Visual Studio 2005 Express 的 AppWizard,解压缩并将 JS 文件复制到 WTL\AppWiz 文件夹,双击它将 WTL 向导安装到 VC Express 中。

尽情享受 WTL 和 VC Express 免费吧!

一些问题

由于 VC++ Express 不包含“资源编辑器”,因此在创建对话框或 FormView 时会收到错误。但是,一旦创建了项目和源文件,就可以直接打开项目。如果您能找到免费的资源编辑器,请告诉我。

评论:rvRoman 告诉 我们有一个免费的资源编辑器,tsehonkit 给了我们一个正确的 链接

历史

  • 2006 年 1 月 12 日 - 首次提交,适用于 WTL7.5。
  • 2006 年 1 月 27 日 - 修复了一个编辑错误。
© . All rights reserved.