【发布时间】:2026-01-18 16:05:02
【问题描述】:
在 Windows API 函数 mbstowcs_s 的上下文中,我很难确定 Word 的确切大小。这是来自MSDN的相关信息以及链接。
mbstowcs_s、_mbstowcs_s_l
将多字节字符序列转换为相应的宽字符序列。 mbstowcs 的版本,_mbstowcs_l 具有 CRT 中的安全功能中所述的安全增强功能。
参数
[out] pReturnValue - 转换的字符数。
[out] wcstr - 转换后的宽字符串的缓冲区地址。
[in] sizeInWords - wcstr 缓冲区的大小(以字为单位)。
[in] mbstr - 以空字符结尾的多字节字符序列的地址。
[in] count - 存储在 wcstr 缓冲区中的最大宽字符数,不包括终止的 null 或 _TRUNCATE。
这里是 MSDN 页面的链接:https://msdn.microsoft.com/en-us/library/eyktyxsx.aspx
有什么想法吗?
【问题讨论】:
-
这是
wcstr指向的缓冲区中wchar_ts的数量 -
@Praetorian 所以它本质上是缓冲区的长度(以宽字符为单位)......似乎 WORD 是描述参数的错误 word 选择......如果您将此作为答案发布,我会接受。我目前没有足够的声誉来对您的评论进行投票。
-
我同意,更好的措辞会完全按照您所说的那样......缓冲区中的宽字符数。我怀疑这是 Windows API 术语泄漏到文档中的情况,因为 WinAPI 使用
WORD作为 16 位无符号整数的 typedef,而wchar_t在 Windows 上也是 16 位的。无论如何,您已经有了答案(尽管我不同意他的第一句话,并且与回答实际问题有点离题),我不会再添加一个,因为我真的没有任何证据,如果您愿意的话,那我说的是对的。
标签: c++ windows api wchar tchar