【发布时间】:2011-11-28 18:14:04
【问题描述】:
szTip 字段长度为 128 个字符,并且是 unicode。它是 TCHAR 类型,类型定义为 WCHAR。所以我不知道为什么下面的代码 sn-p 不会编译。
nid.szTip = _T("ToolTip");
编译错误是
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
有什么建议吗?
【问题讨论】:
szTip 字段长度为 128 个字符,并且是 unicode。它是 TCHAR 类型,类型定义为 WCHAR。所以我不知道为什么下面的代码 sn-p 不会编译。
nid.szTip = _T("ToolTip");
编译错误是
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
有什么建议吗?
【问题讨论】:
如果您分配给TCHAR*,您的代码将起作用。但是,szTip 不是TCHAR*,它被声明为TCHAR szTip[64]。
所以你需要将字符串的内容复制到缓冲区。像这样:
_tcscpy(nid.szTip, _T("ToolTip"));
您真的需要同时支持 ANSI 和 Unicode 构建吗?如果不是,请停止使用 TCHAR 并切换到 Unicode。然后你可以写一个更易读的版本。
wcscpy(nid.szTip, L"ToolTip");
【讨论】: