使用Unicode的优势:
Windows2000是使用Unicode重新开发的,核心部分都需要Unicode字符串。所以:
这些操作必须要分配内存,调用函数,都是在你看不到的情况下发生的。因此直接使用Unicode,可以让你的应用程序更加高效率地运行。 C语言对Unicode的支持是wchar_t。在VS中则是定义UINICODE和_UNICODE。 ANSI改成Unicode字符串有三种方式,字符串前加一个L、使用TEXT宏和_T宏。 如果是使用的DLL和调用它的EXE,分别使用Ansi版本和Unicode版本,只需要分配内存,然后转换就可以调用了。 对于功能相同的两个函数,尽量使用Unicode的版本。 ShlWApi.h头文件中,也提供了操作字符串的Ansi和Unicode版本。 转换你的应用程序到Unicode版本的一些基本原则:
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。
|
|