WTL::CListViewCtrl::GetItemText(int nItem, int nSubItem, _CSTRING_NS::CString& strText)报错,抓狂中

happycock 2005-09-24 09:58:22
WTL::CListViewCtrl::GetItemText有3个重载
BOOL GetItemText(int nItem, int nSubItem, BSTR& bstrText) const
int GetItemText(int nItem, int nSubItem, _CSTRING_NS::CString& strText) const
int GetItemText(int nItem, int nSubItem, LPTSTR lpszText, int nLen) const
我定义了一个CString变量,按理应该调用第2个,结果编译器报告
error C2664: “BOOL WTL::CListViewCtrlT<TBase>::GetItemText(int,int,BSTR & ) const” : 不能将参数 3 从“ATL::CString”转换为“BSTR & ”
with
[
TBase=ATL::CWindow
]
抓狂中……

...全文
302 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
happycock 2005-09-24
  • 打赏
  • 举报
回复
真想给自己点分,呵呵
happycock 2005-09-24
  • 打赏
  • 举报
回复
搞清楚了,在自己工程的stdafx.h中要在#include <atlapp.h>前面加上
#include <atlstr.h>
#define __ATLSTR_H__
表示使用ATL::CString,一定要在前面加,因为atlapp.h用到了CString,这样就可以解决了。
WTL为什么不直接使用ATL的CString呢?难道是想独立?想想也是,只有提供了CString才能算完整的库吗,否则,这个就够人劳神的。

guxingfeiyu 2005-09-24
  • 打赏
  • 举报
回复
那你试验一下用using namespace
happycock 2005-09-24
  • 打赏
  • 举报
回复
这么做有点强奸的味道,呵呵,有正解吗?WTL很好得到的,源码形式的只有几百K
guxingfeiyu 2005-09-24
  • 打赏
  • 举报
回复
呵呵, 这个你定义一个宏吧,不过不好用CString,可以用cString,呵呵
happycock 2005-09-24
  • 打赏
  • 举报
回复
包含atlmisc.h把CString全换成WTL::CString总算胡弄过去了,可是这好像不是正途。
MFC的CString实际上用的就是ATL::CString,WTL关于这个的宏一堆,我也不知道怎么设置好,最好是可以直接写CString,不用名字空间的。
guxingfeiyu 2005-09-24
  • 打赏
  • 举报
回复
那会不会和MFC的CString混淆了?看看有没有加入MFC的一些头文件。
happycock 2005-09-24
  • 打赏
  • 举报
回复
_CSTRING_NS在宏定义中会变成ATL,CString实际上就是ATL::CString,我是不知道是不是那个条件编译把第2个重载给短了
guxingfeiyu 2005-09-24
  • 打赏
  • 举报
回复
定义中的这个参数类型是_CSTRING_NS::CString,因此你不能直接用CString。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧