szTip字段的长度为128个字符,并且是unicode。它的类型为TCHAR,其类型定义为WCHAR。所以我不知道为什么下面的代码片段无法编译。
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");
关于c++ - 设置NOTIFYICONDATA结构的szTip字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7615615/