我无法在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缓冲区中的最大宽字符数,不包括终止空值或_TRUNCATE。
以下是MSDN页面的链接:https://msdn.microsoft.com/en-us/library/eyktyxsx.aspx
有什么想法吗?
答案 0 :(得分:0)
通常一个字表示16位。
为了确保,分配一个让我们说100字节的缓冲区,用0xff填充它们。然后传递16为sizeInWords和mbstr至少16个字符。在调试器中,在调用完成时检查wcstr。如果我是对的,缓冲区的前32个字节将具有字符值,其余的仍然是0xff。 (当然这忽略了wcstr的某些值可能是0xff的事实)