一个困扰我很久的问题,关于多语言支持,解决后马上给分 我的一个桥牌网络程序,经常有在国外的中国牌手上来打牌。他们的系统装的是windows英文版,有98 / 2000 / xp.问题是他们都不能看汉字,特别是牌手聊天中的汉字。在不安装中文系统的情况下,如中文之星 rich win等。怎样做才能显示汉字? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 他们的系统必须按照中文字库,微软的网站上可以下载,而且Windows的安装光盘上面也有。在控制面板,区域设置,里面添加中文支持 装上字库应该就可以了。Window支持多语言。 我在程序中将字体下载并安装到他的机器上,比如宋体,然后textout("中国"),在屏幕上能显示出汉字吗? “装上字库应该就可以了。Window支持多语言。”“他们的系统必须按照中文字库”呵呵,这办法是行不通的。就象你安装Office或IE6是安装了繁体和日文字体或是单独安装了繁体和日文字体之后你运行繁体的大富翁是乱码,运行日文软件也还是乱码。不过在IE里打开的繁体,日文是可以正常显示的。用记事本等程序也可以正常显示繁体和日文但是如果记事本的菜单是繁体或日文就不可以了。Win2003安装了多语言以后可以选择UI的缺省语言,比如说可以设置界面的语言为繁体,于是你的记事本的菜单就可以是繁体了但是,如果你有个程序的界面语言为简体中文,则又是乱码了。解决分发有二:用VC.net遍程,用IE运行。或者自己写个类IE的东西。我记得有个叫“手机工作室”的程序就是用的自己的界面,调用的IE。或在程序中不要用系统提供的有关字符显示的API所有的文字都自己直接读自己的程序带的字库然后显示到DC。比如:红警2 英雄无敌2可以用ucdos带的24点阵的字库根据汉字的内码计算出在字库文件的位置,24×24 / 8 = 72 字节一个汉字把24*24个点画到你的窗口中就可以了. “我在程序中将字体下载并安装到他的机器上,比如宋体,然后textout("中国"),在屏幕上能显示出汉字吗?”不只是安装字体,系统得支持多语言,然后有字库,在你的程序中是可以出来中文的,但是你的程序的界面是不可以的 既然人家看不懂中文,何必这么作那,想想msn分成多个语言版本不结了。另外可以学学myie2这个软件不错 对,自己带一个字库再自己写一个TextOut函数是可以实现的,好多游戏都这么做了. “不只是安装字体,系统得支持多语言,然后有字库,在你的程序中是可以出来中文的,但是你的程序的界面是不可以的”界面是可以输出中文的,但是需要在输出时进行一系列的处理,关键是选择字符串的Code page,如果选择正确则可以实现正确现实。关于如何实现我在 http://expert.csdn.net/Expert/TopicView1.asp?id=2455264 大体介绍了一下思路,可以参考一下。如不清楚可以联系50081145 程序实现多国语言的动态切换解决方案作者:耿海增 实现思想:传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切换语言,如果更换语言后必须重新启动软件。当然,没有人会需要经常的切换语言玩儿,但是采用动态库的方法,如果程序需要修改资源的话,就要更新所有的动态库,这是一个非常枯燥而且容易出现疏漏的工作。我的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言。具体实现:1、程序启动时检查所选择的语言,确定该语言文件,保存该文件路径2、提供一个全局函数,如 g_LoadString(CString szID),根据提供的字符串ID返回其内容,具体是哪个语言的在函数中判断,这样在程序中只要提供一个字符串ID就可以自动加载不同语言的文字了。3、如何在程序中使用:原来代码:CString str;str = "语言";改动后: CString str;str = g_LoadString("IDS_LANGUAGE");4、对话框中如何实现如果像在程序中使用一样,每一个字符串都要去加载一次的话,如果对话框比较多,工作量可就太大了。所以我提供了一个函数g_SetDialogStrings(CDialog *pDlg,UINT uDlgID),每个对话框在初始化的时候调 用该函数,传递对话框的指针,我在函数中循环枚举所有的子控件,逐个设置文字。这样就可以省去很多工作注意:由于静态文本(CStatic)默认的ID是IDC_STATIC,值都是65535,无法区分,所以在需要改变其文字的CStatic的ID要改一改,不能用默认的 5、语言文件样例:中文版:[Setting]Language=Chinese[String]IDS_MENU_FILE=文件IDS_MENU_FILE_NEW=新建(&N)IDS_MENU_FILE_OPEN=打开(&O)IDS_MENU_FILE_CLOSE=关闭(&C)IDS_MENU_FILE_EXIT=退出(&E)英文版: [Setting]Language=English[String]IDS_MENU_FILE=FileIDS_MENU_FILE_NEW=&NewIDS_MENU_FILE_OPEN=&OpenIDS_MENU_FILE_CLOSE=&CloseIDS_MENU_FILE_EXIT=&Exit 360和腾迅两家公司最近好像咬得很凶,为此散些分 getEnvironmentStrings 这个函数的问题 为啥没有反应? 有人用过quicktime SDK吗 请问要做一个类似课件制作的软件,其中的图形绘制是用GDI还是别的什么东西 VC中如何用代码实现A机器上对B机器上某个目录下.txt文件的操作(当然这个用VC写的程序是在A机器上运行) 怎样导出dll中的对话框类? xstring(麻雀),进来给分了! 一个简单程序 ,谁帮你看看 控件在SubClass之前的WNDPROC是什么?是在注册类时DefWindowProc吗? 有开发过多语言 版本的请进 在vc中怎样用程序配置ODBC?
“他们的系统必须按照中文字库”呵呵,这办法是行不通的。就象你安装Office或IE6是安装了繁体和日文字体
或是单独安装了繁体和日文字体
之后你运行繁体的大富翁是乱码,运行日文软件也还是乱码。
不过在IE里打开的繁体,日文是可以正常显示的。
用记事本等程序也可以正常显示繁体和日文
但是如果记事本的菜单是繁体或日文就不可以了。Win2003安装了多语言以后可以选择UI的缺省语言,
比如说可以设置界面的语言为繁体,于是你的记事本的菜单就可以是繁体了
但是,如果你有个程序的界面语言为简体中文,则又是乱码了。解决分发有二:
用VC.net遍程,用IE运行。或者自己写个类IE的东西。
我记得有个叫“手机工作室”的程序就是用的自己的界面,调用的IE。或在程序中不要用系统提供的有关字符显示的API
所有的文字都自己直接读自己的程序带的字库
然后显示到DC。
比如:红警2 英雄无敌2
可以用ucdos带的24点阵的字库
根据汉字的内码计算出在字库文件的位置,
24×24 / 8 = 72 字节一个汉字
把24*24个点画到你的窗口中就可以了.
但是你的程序的界面是不可以的
但是你的程序的界面是不可以的”界面是可以输出中文的,但是需要在输出时进行一系列的处理,关键是选择字符串的Code page,如果选择正确则可以实现正确现实。关于如何实现我在 http://expert.csdn.net/Expert/TopicView1.asp?id=2455264 大体介绍了一下思路,可以参考一下。如不清楚可以联系50081145
作者:耿海增
实现思想:传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切换语言,如果更换语言后必须重新启动软件。当然,没有人会需要经常的切换语言玩儿,但是采用动态库的方法,如果程序需要修改资源的话,就要更新所有的动态库,这是一个非常枯燥而且容易出现疏漏的工作。我的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言。具体实现:1、程序启动时检查所选择的语言,确定该语言文件,保存该文件路径2、提供一个全局函数,如 g_LoadString(CString szID),根据提供的字符串ID返回
其内容,具体是哪个语言的在函数中判断,这样在程序中只要提供一个字符串ID就可以自动
加载不同语言的文字了。3、如何在程序中使用:
原来代码:CString str;
str = "语言";
改动后: CString str;
str = g_LoadString("IDS_LANGUAGE");
4、对话框中如何实现如果像在程序中使用一样,每一个字符串都要去加载一次的话,如果对话框比较多,工作量可就太大了。
所以我提供了一个函数g_SetDialogStrings(CDialog *pDlg,UINT uDlgID),每个对话框在初始化的时候调 用该函数,传递对话框的指针,我在函数中循环枚举所有的子控件,逐个设置文字。这样就可以省去很多工作注意:由于静态文本(CStatic)默认的ID是IDC_STATIC,值都是65535,无法区分,所以在需要改变其文字的CStatic的ID要改一改,不能用默认的
5、语言文件样例:中文版:[Setting]
Language=Chinese[String]
IDS_MENU_FILE=文件
IDS_MENU_FILE_NEW=新建(&N)
IDS_MENU_FILE_OPEN=打开(&O)
IDS_MENU_FILE_CLOSE=关闭(&C)
IDS_MENU_FILE_EXIT=退出(&E)英文版: [Setting]
Language=English[String]
IDS_MENU_FILE=File
IDS_MENU_FILE_NEW=&New
IDS_MENU_FILE_OPEN=&Open
IDS_MENU_FILE_CLOSE=&Close
IDS_MENU_FILE_EXIT=&Exit