【问题标题】:Error while including atltime header into WTL project将 atltime 标头包含到 WTL 项目中时出错
【发布时间】:2012-11-21 07:11:13
【问题描述】:

在我使用 WTL - Visual Studio 9 中的对话框向导创建了一个普通对话框之后,我已经包含了 <atltime.h> 标题,我得到了这个:

Error   2   error C2039: 'CString' : is not a member of 'WTL'   ...\wtl\include\atlctrls.h  5060    TASKSCHEDULER
Error   3   error C2039: 'CString' : is not a member of 'WTL'   ...\wtl\include\atlctrls.h  969 TASKSCHEDULER
Error   4   error C2039: 'CString' : is not a member of 'WTL'   ...\wtl\include\atldlgs.h   535 TASKSCHEDULER
Error   5   error C2039: 'CString' : is not a member of 'WTL'   ...\wtl\include\atldlgs.h   627 TASKSCHEDULER
Error   6   error C2039: 'CString' : is not a member of 'WTL'   ...\wtl\include\atldlgs.h

697 TASKSCHEDULER

【问题讨论】:

  • 确保您的#include 不在命名空间内
  • 你试过包含 吗?
  • 我通过在 atlapp.h 之前和 atlbase.h 之后包含 atlstr.h,在使用向导的简单对话框创建中解决了这个问题。但在一个更大的项目中,问题无处不在,说 'CString' : ambiguous symbol。
  • 我做了 typedef WTL::CString CString 或 typedef ATL::CAtlString CString,但还是弹出同样的错误。
  • 首先不要说你的Q是不完整的。在新创建的项目中添加#include <atltime.h>(特别是在#include <atlbase.h> 下面)不会导致任何错误。

标签: c++ atl wtl


【解决方案1】:

我遇到了类似的情况,有两件事帮助我摆脱了错误,也许对其他人有帮助。

  1. 包括atlstr.h以上atlapp.h
  2. 定义_WTL_NO_CSTRING

【讨论】:

  • 查看最新 WTL 版本的 readme.html 以获得对这个问题的更完整答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多