设置 NOTIFYICONDATA 结构的 szTip 字段

Ste*_*rna 2 c++ winapi icons wchar

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

nid.szTip = _T("ToolTip");
Run Code Online (Sandbox Code Playgroud)

编译错误是

error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Dav*_*nan 5

如果您将TCHAR*. 但是,szTip不是TCHAR*,它被声明为TCHAR szTip[64]

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

_tcscpy(nid.szTip, _T("ToolTip"));
Run Code Online (Sandbox Code Playgroud)

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

wcscpy(nid.szTip, L"ToolTip");
Run Code Online (Sandbox Code Playgroud)