在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

有任何想法吗?

最佳答案

通常,一个字表示16位。

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

关于c++ - 在mbstowcs_s函数SizeInWords参数的上下文中,Word的大小是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28862762/

10-11 10:55