一個(gè)程序或控件,如果想要有更大的市場(chǎng),國(guó)際化是一種必然的趨勢(shì)。要使軟件國(guó)際化,其編碼必須支持多語(yǔ),否則有可能在你的程序中,僅在某個(gè)版本的操作系統(tǒng)底下好用,而在另外的操作系統(tǒng)中卻是亂碼。VC對(duì)多語(yǔ)的支持相對(duì)于VB來(lái)說(shuō)還是簡(jiǎn)單了很多,其自身提供了支持多語(yǔ)的機(jī)制。在實(shí)際工作中,在VC中進(jìn)行多語(yǔ)化編譯,我總結(jié)出以下一些要點(diǎn):
1、首先應(yīng)該預(yù)編譯指令中定義UNICODE或_UNICODE,使用了這個(gè)預(yù)編譯指令,在使用WindowsAPI時(shí),系統(tǒng)就會(huì)自動(dòng)使用W版的API函數(shù)及結(jié)構(gòu)
2、聲明字符串必須用TCHAR,而不能用char
3、對(duì)于字符串操作的相關(guān)函數(shù)處理,如strcpy用wcscpy的代替等等
4、所有的字符串值,必須加上宏_T()
5、如果在程序中使用了STL,必須使用必須使用其w版的函數(shù)及類型,比如string就得用wstring來(lái)代替,在我的程序中,使用了如下預(yù)編譯指令:
#ifdef _UNICODE
#define tstring wstring
#else
#define tstring string
#endif
這樣在程序中用tstring來(lái)聲明字符串。所有與string相關(guān)的函數(shù)都必須作這這樣的處理。比如stringstream、ostream等等。
關(guān)于編碼的問(wèn)題請(qǐng)參考下面文章:
http://dev.csdn.net/develop/article/72/72002.shtm