char*和wchar_t之间的区别*

bal*_*ala 7 c c++ string

我是MFC的新手.我正在尝试做简单的mfc应用程序,我在某些地方变得混乱.例如,SetWindowText有两个API, SetWindowTextA,SetWindowTextW一个API需要char *和另一个接受wchar_t *.

有什么用的char *wchar_t *

mvp*_*mvp 16

char用于所谓的ANSI系列函数(通常是函数名称以A)结尾,或者通常称为使用ASCII字符集.

wchar_t用于新的所谓Unicode(或宽)函数系列(通常函数名称以W)结尾,它使用UTF-16字符集.它与UCS-2非常相似,但并不完全相同.如果字符需要超过2个字节,它将被转换为2个复合代码点,这可能会非常混乱.

如果你想将一个转换为另一个,这不是一个非常简单的任务.您将需要使用类似的东西MultiByteToWideChar,这需要知道并提供输入ANSI字符串的代码页.