使用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。