關于在XtremeToolkit2.0環境下使用中文

發表于:2007-07-01來源:作者:點擊數: 標簽:
今天又遇到了這個問題,以前記得一個網友回答了這個問題,根據記憶的片斷和今天一下午在msdn中搜索結果,終于搞定,趕緊把解決方法記下來。 在安裝了XTremeToolkit2.0的環境中,使用XTreme向導創建的應用程序,是無法選擇中文的。因而使用此向導產生的應用程

今天又遇到了這個問題,以前記得一個網友回答了這個問題,根據記憶的片斷和今天一下午在msdn中搜索結果,終于搞定,趕緊把解決方法記下來。

在安裝了XTremeToolkit2.0的環境中,使用XTreme向導創建的應用程序,是無法選擇中文的。因而使用此向導產生的應用程序是無法使用中文的,當你在此向導產生的應用程序中添加中文資源時,顯示將會是亂碼。

怎樣解決這個問題那?

方法一、從根本上解決問題。改變向導,生成中文工程。

原理:在使用Xtreme向導建立應用程序時,第一步,如下圖所示,在選擇語言項中,是不支持中文的。這個選項是由SetSupportedLanguages( LPCTSTR szSupportedLangs )控制的。

這個函數可以類CCustomAppWiz的成員函數InitCustomAppWiz中找到。其參數是由\n分割的語言項構成:

language-name#1 (APPWZ*.DLL-name#1);translation-identifier#1\n

language-name#2 (APPWZ*.DLL-name#2);translation-identifier#2\n...

...language-name#i (APPWZ*.DLL-name#i);translation-identifier#i\n”

具體內容,請參考MSDN。

開始修改,如果你象我一樣,拿到的是XtremeToolkit2.0retailVersion(一下簡稱XT),那么你的情況就和我一樣了。這樣,我們至少拿到了他的源代碼。XT提供了自己的向導,并且你可以在安裝完畢后的開始菜單中找到這個工程,ToolkitProject菜單下ApplicationWizard(6),這里6表示生成的向導是在VisualC++6.0使用的。打開,找到類CXTAppWizardAppWiz的成員函數InitCustomAppWiz(),在這個函數中你會看到控制語言選項的函數

SetSupportedLanguages(_T("German [Standard] (APPWZDEU.DLL);0x40704b0\nEnglish [United States] (APPWZENU.DLL);0x40904b0\nSpanish [International Sort] (APPWZESP.DLL);0xc0a04b0\nFrench [Standard] (APPWZFRA.DLL);0x40c04b0\nItalian [Standard] (APPWZITA.DLL);0x41004b0"));對此進行修改,添加中文支持。

修改如下:

SetSupportedLanguages(_T("中文 [簡體] (APPWZCHS.DLL);0x80403A8\n德語 [標準] (APPWZDEU.DLL);0x40704b0\n英語 [美國] (APPWZENU.DLL);0x40904b0\n西班牙 [International Sort] (APPWZESP.DLL);0xc0a04b0\n法語 [標準] (APPWZFRA.DLL);0x40c04b0\n意大利 [Standard] (APPWZITA.DLL);0x41004b0"));

好,編譯,生成Release版,退出VisualC++環境。

在開始菜單中找到codejock Software->wizards->launch Deployment wizard。直接進入第三步,選擇如下圖示,下一步,直到完成。

重新打開visual C++運行環境,使用Xtreme Toolkit Appwizard,進入第一步,你會看到,中文已經出現在選擇菜單中了。編譯生成的文件,可是中文界面哦。

方法二,將已經使用向導生成了英文的工程轉換成支持中文資源的工程。

打開工程,點擊View->Resource Includes,會看到彈出一個對話框,其中么修改的內容如下:

 

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

#ifdef _WIN32

LANGUAGE 9, 1

#pragma code_page(1252)

#endif //_WIN32

#include "res\TEs.rc2"  // non-Microsoft Visual C++ edited resources

#include "afxres.rc"         // Standard components

#include "afxprint.rc"       // printing/print preview resources

#endif

語言和代碼頁我們么修改成中文的,這樣當你把工程中的資源改成中文后,就會自動調用中文資源了。根據我的經驗,我在將以前一個英文的工程轉成中文,只是將菜單等資源重新插入一個拷貝,改成中文資源,就可以了。但是如果直接更改也沒有問題。

上面的內容修改如下:

 

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

#ifdef _WIN32

LANGUAGE 4, 2

#pragma code_page(936)

#endif //_WIN32

#include "res\TEs.rc2"  // non-Microsoft Visual C++ edited resources

#include "afxres.rc"         // Standard components

#include "afxprint.rc"       // printing/print preview resources

#endif

到此,我們再回頭解釋一下SetSupportedLanguages中的參數,是一些由“中文 [簡體] (APPWZCHS.DLL);0x80403A8\n”組成的字符串,其中又一個十六進制的串,意義如下,高位字節表示語言0804,即LCID,低位表示03A8代碼頁936。

最后一項工作,為了使你的XTremetoolkit完全的支持中文,我們在其安裝目錄include下,可以看到l.cn文件夾,這個文件夾下即為中文支持資源,將其拷貝到include下,覆蓋原文件,打開,如果發現他是亂碼,那么,自己漢化他吧(沒辦法,我的就是亂碼,自己漢化了半天),這樣你在以后的調用中,就可以看到XTremeToolkit內部的資源都是中文了。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97