如何strncpy()到WCHAR

时间:2012-09-06 16:07:13

标签: c++ c unicode strncpy

我得到了一段在多字节字符集下工作的代码。但是,我想将这段代码转换为UNICODE。所以我修复了很多东西,但在strncpy()行失败了。这是我要改变的一行:

strncpy(a.szTip, szToolTip, bLength);

我使用了很多功能来解决这个问题,但所有功能都失败了。

这是错误:

strncpy cannot convert parameter 1 from WCHAR[128] to char *

2 个答案:

答案 0 :(得分:6)

处理宽字符时,请使用wcsncpy()(以及其他相关功能)。

正如Remy Lebeau指出的那样,使用_tcsncpy()宏更安全如果你想支持ANSI和& Unicode构建(它分别扩展到正确的函数)。

答案 1 :(得分:0)

我认为你不应该将WCHAR用于Unicode。使用char。 http://www.utf8everywhere.org几乎总结了我对此的看法。