1

在 Windows API 函数 mbstowcs_s 的上下文中,我很难确定 Word 的确切大小。这是来自 MSDN 的相关信息以及链接。

mbstowcs_s, _mbstowcs_s_l

将多字节字符序列转换为相应的宽字符序列。mbstowcs 的版本,_mbstowcs_l 具有安全增强功能,如 CRT 中的安全功能中所述。

参数

[out] pReturnValue - 转换的字符数。

[out] wcstr - 转换后的宽字符串的缓冲区地址。

[in] sizeInWords - wcstr 缓冲区的大小(以字为单位)。

[in] mbstr - 以 null 结尾的多字节字符序列的地址。

[in] count - 存储在 wcstr 缓冲区中的最大宽字符数,不包括终止的 null 或 _TRUNCATE。

这是 MSDN 页面的链接:https ://msdn.microsoft.com/en-us/library/eyktyxsx.aspx

有任何想法吗?

4

1 回答 1

0

通常一个字表示 16 位。

为了确保,分配一个 100 字节的缓冲区,用 0xff 填充它们。然后为 sizeInWords 传递 16 和至少 16 个字符的 mbstr。调用完成后,在调试器中检查 wcstr。如果我是对的,缓冲区的前 32 个字节将有字符值,其余的仍然是 0xff。(当然这忽略了 wcstr 的某些值可能是 0xff 的事实)

于 2015-03-04T19:12:13.130 回答