Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
szTip 字段长度为 128 个字符,并且是 unicode。它是 TCHAR 类型,类型定义为 WCHAR。所以我不知道为什么下面的代码片段不会编译。
nid.szTip = _T("ToolTip");
编译错误是
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
有什么建议吗?
如果您分配给TCHAR*. 但是,szTip不是 a TCHAR*,它被声明为TCHAR szTip[64]。
TCHAR*
szTip
TCHAR szTip[64]
所以你需要将字符串的内容复制到缓冲区。像这样:
_tcscpy(nid.szTip, _T("ToolTip"));
您真的需要同时支持 ANSI 和 Unicode 构建吗?如果没有,请停止使用TCHAR并切换到 Unicode。然后你可以写一个更易读的版本。
TCHAR
wcscpy(nid.szTip, L"ToolTip");