1、字符放在DLL資源文件中,切換資源模塊(程序默認使用exe模塊資源)。函數
實現要點:spa
新建一個只包含資源的DLL。經過函數AfxSetResourceHandle設置資源模塊。.net
示意代碼爲:線程
AfxSetResourceHandle(LoadLibrary("english.dll"));blog
Cstring strMsg;ci
strMsg.LoadString(ID_TITLE);資源
SetWindowText(strMsg);get
見例子MulLanguage_dll.rarstring
2、字符放在EXE資源文件中,選擇對應的語言資源。原理
實現要點:
新建多個ID相同,語言不一樣的資源。
經過SetThreadLocale設置當前線程使用語言。
示意代碼:
SetThreadLocale(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US));
CString strMsg;
strMsg.LoadString(ID_TITLE);
SetWindowText(strMsg);
例子:MulLanguage_rc.rar
3、字符放在INI文件中。
實現要點:
同種語言字符放在單獨的文本,經過切換文件方式切換語言。
優勢:增長一種新語言,只需增長相應的語言的文件。
缺點:DLL模塊中的字符轉換,字符ID命名。
CString strMsg;
GetPrivateProfileString(…);
SetWindowText(strMsg);
見例子MulLanguage_ini.rar
綜合上面三種方法,從原理上看實際上是同一種方法,獲取相應語言下的字符,再顯示字符,不一樣之處是字符存放位置不一樣。字符能夠存放在DLL資源中,exe資源中,文本文件中。相應地獲取字符方式也不一樣。