我得到了一段在多字节字符集下工作的代码。但是,我想将这段代码转换为UNICODE。所以我修复了很多东西,但在strncpy()行失败了。这是我要改变的一行:
strncpy(a.szTip, szToolTip, bLength);
我使用了很多功能来解决这个问题,但所有功能都失败了。
这是错误:
strncpy cannot convert parameter 1 from WCHAR[128] to char *
答案 0 :(得分:6)
处理宽字符时,请使用wcsncpy()
(以及其他相关功能)。
正如Remy Lebeau指出的那样,使用_tcsncpy()
宏更安全如果你想支持ANSI和& Unicode构建(它分别扩展到正确的函数)。
答案 1 :(得分:0)
我认为你不应该将WCHAR用于Unicode。使用char。 http://www.utf8everywhere.org几乎总结了我对此的看法。