设置 NOTIFYICONDATA 结构的 szTip 字段

发布于 2024-12-07 14:45:11 字数 270 浏览 1 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

煞人兵器 2024-12-14 14:45:11

如果您分配给 TCHAR*,您的代码将有效。但是,szTip 不是 TCHAR*,它被声明为 TCHAR szTip[64]

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

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

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

wcscpy(nid.szTip, L"ToolTip");

Your code would work if you were assigning to a TCHAR*. However, szTip is not a TCHAR*, it is declared as TCHAR szTip[64].

So you need to copy the contents of the string to the buffer. Like this:

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

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.

wcscpy(nid.szTip, L"ToolTip");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文