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






4.87/5 (32投票s)
本文档解释了在 Visual Studio 2005 Express Edition 中使用 WTL 的步骤。
引言
Visual C++ 2005 Express Edition 于 2005 年 11 月 7 日发布。它拥有出色的原生 C++ 编译器和智能编辑器。最重要的是它是免费的。我们可以免费使用它进行 WTL 编程。我于 2005 年 11 月 9 日在 这里 发布了相同的步骤。现在,我将其提交给 CodeProject。
循序渐进
- 从 MSDN 下载并安装 Visual C++ 2005 Express Edition。
- 下载并安装 Platform SDK,并按照 这里 的详细说明更新 Visual C++ 设置。
- 在“选项”对话框的“项目”部分中更新 Visual C++ 目录。将 ATL 路径添加到包含文件(显示的路径为默认路径,请使用指向实际位置的路径)。
C:\Program Files\Microsoft Platform SDK\include\atl
- 按照以下方式修改 Platform SDK 安装目录的 ATL 文件夹中的 atlwin.h 和 atlbase.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 行的
AllocStdCallThunk
和FreeStdCallThunk
修改为新的宏。/* 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)
- 修改 atlwin.h 文件第 1725 行的
- 从 SourceForge 下载并安装 WTL。
- 从此页上方链接下载适用于 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 日 - 修复了一个编辑错误。