设置 NOTIFYICONDATA 结构的 szTip 字段
szTip 字段长度为 128 个字符,并且是 unicode。它的类型为 TCHAR,其类型定义为 WCHAR。所以我不知道为什么下面的代码片段无法编译。
nid.szTip = _T("ToolTip");
编译错误是
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
有什么建议吗?
The szTip field is 128 characters long, and unicode. It is of type TCHAR, which is typedef'd as WCHAR. So i have no clue why the following code snippet will not compile.
nid.szTip = _T("ToolTip");
The compile error is
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
Any advice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您分配给
TCHAR*
,您的代码将有效。但是,szTip
不是TCHAR*
,它被声明为TCHAR szTip[64]
。所以需要将字符串的内容复制到缓冲区。像这样:
您真的需要同时支持 ANSI 和 Unicode 构建吗?如果不是,请停止使用
TCHAR
并切换到 Unicode。然后你可以编写一个更具可读性的版本。Your code would work if you were assigning to a
TCHAR*
. However,szTip
is not aTCHAR*
, it is declared asTCHAR szTip[64]
.So you need to copy the contents of the string to the buffer. Like this:
Do you really need to support both ANSI and Unicode builds? If not then stop using
TCHAR
and switch to Unicode. Then you could write a more readable version.