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/

10-14 07:47