即使你不打算立即使用Unicode,最好也應該著手將你的應用程序轉換成符合Unicode 的應用程序。下面是應該遵循的一些基本原則:
• 將文本串視為字符數組,而不是chars 數組或字節數組。
• 將通用數據類型(如TCHAR和PTSTR)用于文本字符和字符串。
• 將顯式數據類型(如BYTE和PBYTE)用于字節、字節指針和數據緩存。
• 將TEXT宏用于原義字符和字符串。
• 執行全局性替換(例如用PTSTR替換PSTR)。
• 修改字符串運算問題。例如函數通常希望你在字符中傳遞一個緩存的大小,而不是字節。
這意味著你不應該傳遞sizeof(szBuffer),而應該傳遞(sizeof(szBuffer)/sizeof(TCHAR)。另外,如果需要為字符串分配一個內存塊,并且擁有該字符串中的字符數目,那么請記住要按字節來分配內存。這就是說,應該調用malloc(nCharacters *sizeof(TCHAR)),而不是調用malloc(nCharacters)。在上面所說的所有原則中,這是最難記住的一條原則,如果操作錯誤,編譯器將不發出任何警告。
• 使用可以擴展的函數
lstrcat 將一個字符串置于另一個字符串的結尾處
lstrcmp 對兩個字符串進行區分大小寫的比較 對Windows函數CompareString的調用來實現的。
lstrcmpi 對兩個字符串進行不區分大小寫的比較 對Windows函數CompareString的調用來實現的。
lstrcpy 將一個字符串拷貝到內存中的另一個位置
lstrlen 返回字符串的長度(按字符數來計量)
• 使用可以擴展的字符串類tstring
tstring str = _T("abc");
這么做就可以直接用UNICODE宏 來控制了,而不用去修改代碼了。
轉自(http://www.shnenglu.com/Vcer-JZ/archive/2011/08/13/153246.html)