szTip字段长128个字符,并且是unicode。它的类型为TCHAR,其类型为WCHAR。所以我不知道为什么以下代码片段无法编译。
nid.szTip = _T("ToolTip");
编译错误是
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
有什么建议吗?
答案 0 :(得分:4)
如果您分配给TCHAR*
,您的代码就可以使用。但是,szTip
不是TCHAR*
,它被声明为TCHAR szTip[64]
。
因此您需要将字符串的内容复制到缓冲区。像这样:
_tcscpy(nid.szTip, _T("ToolTip"));
您真的需要支持ANSI和Unicode版本吗?如果没有,则停止使用TCHAR
并切换到Unicode。然后你可以写一个更易读的版本。
wcscpy(nid.szTip, L"ToolTip");