使用Unicode的优点:数组
Windows2000是使用Unicode从新开发的,核心部分都须要Unicode字符串。因此:缓存
这些操做必需要分配内存,调用函数,都是在你看不到的状况下发生的。所以直接使用Unicode,可让你的应用程序更加高效率地运行。ide
C语言对Unicode的支持是wchar_t。在VS中则是定义UINICODE和_UNICODE。函数
ANSI改为Unicode字符串有三种方式,字符串前加一个L、使用TEXT宏和_T宏。spa
若是是使用的DLL和调用它的EXE,分别使用Ansi版本和Unicode版本,只须要分配内存,而后转换就能够调用了。指针
对于功能相同的两个函数,尽可能使用Unicode的版本。code
ShlWApi.h头文件中,也提供了操做字符串的Ansi和Unicode版本。内存
转换你的应用程序到Unicode版本的一些基本原则:ci
Windows对字符串进行操做的函数:lstrcat、lstrcmp、lstrcmpi、lstrcpy、lstrlen。这些函数是做为宏实现的。真正比较两个Unicode字符串的函数是CompareString(LCID lcid, DWORD fdwStyle, PCWSTR pString1, int cch1, PCTSTR pString2, int cch2); 资源
其余的C运行时函数为了支持Unicode的版本,例如CharLower、CharUpper、CharLowerBuff、CharUpperBuff、IsCharAlpha、isAlphaNumber。
最后一个是printf函数家族,有char版本的sprintf和swprintf。
资源内的字符串们,会使用Unicode,不是也被系统内部转换。
肯定字符串是Ansi仍是Unicode,可使用函数IsTextUnicode区分,尽管它有可能返回不正确的结果。
在Unicode和Ansi之间转换字符串,使用两个函数MultiByteToWideChar和WideCharToMultiByte。