【发布时间】:2012-09-06 16:07:13
【问题描述】:
我得到了一段在多字节字符集下工作的代码。但是,我想将这段代码转换为 UNICODE。所以我修复了很多东西,但在 strncpy() 行失败了。这是我要更改的行:
strncpy(a.szTip, szToolTip, bLength);
我使用了很多函数来解决这个问题,但都失败了。
这是错误:
strncpy cannot convert parameter 1 from WCHAR[128] to char *
【问题讨论】:
-
strncpy() 将复制字节,直到找到值为 0 的字节(或达到指定的最大字节数),然后停止复制。因此,即使您强制转换参数以使其编译,它也可能不会执行您想要的操作 - 特别是,任何一个字节包含零的多字节字符都会导致 strncpy() 不复制字符串的其余部分。也许您想改用 wstrncpy()?