分享
 
 
 

关于在XtremeToolkit2.0环境下使用中文

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

今天又遇到了这个问题,以前记得一个网友回答了这个问题,根据记忆的片断和今天一下午在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内部的资源都是中文了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有