2

szTip 字段长度为 128 个字符,并且是 unicode。它是 TCHAR 类型,类型定义为 WCHAR。所以我不知道为什么下面的代码片段不会编译。

nid.szTip = _T("ToolTip");

编译错误是

error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'

有什么建议吗?

4

1 回答 1

5

如果您分配给TCHAR*. 但是,szTip不是 a TCHAR*,它被声明为TCHAR szTip[64]

所以你需要将字符串的内容复制到缓冲区。像这样:

_tcscpy(nid.szTip, _T("ToolTip"));

您真的需要同时支持 ANSI 和 Unicode 构建吗?如果没有,请停止使用TCHAR并切换到 Unicode。然后你可以写一个更易读的版本。

wcscpy(nid.szTip, L"ToolTip");
于 2011-09-30T20:21:14.150 回答