实现软件多语言版本的方案.doc

实现软件多语言版本的方案.doc

ID:56919875

大小:18.00 KB

页数:2页

时间:2020-07-24

实现软件多语言版本的方案.doc_第1页
实现软件多语言版本的方案.doc_第2页
资源描述:

《实现软件多语言版本的方案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实现软件多语言版本的方案编写资源DLL下面以编写英语版的资源DLL(文件名为enres.dll)为例,说明编写的步骤:(1)新建一个MFCDLL工程(工程名为EnRes),完成后将该工程关闭,删除该工程目录下的资源文件(enres.rc)、resource.h文件和res目录;(2)将你要实现多语言版本的程序的工程目录下的资源文件(.rc)、resource.h文件和res目录拷贝到新建工程的目录下,并且将资源文件更名为enres.rc;(3)重新打开工程EnRes,RebuildAll;(4)将所有资源的语言改为English,

2、然后再次Build,OK。可以按照以上步骤编写其他语言的资源DLL。修改你的程序资源DLL编写完成后,:(5)在VC的“WorkspaceWindow”中将“SourceFiles”中的资源文件(.rc)删除,将“ResourceFiles”下的所有文件都删除,并且将工程目录中的资源文件(.rc)和res目录删除,RebuildAll;(6)将资源DLL拷贝至工程目录下;(7)在App类的InitInstance函数的开头中添加以下代码://########LoadresourceaccordinglanguageoftheOS#

3、##########HINSTANCEhRes;CStringstrDllName;//GetsystemlanguageLANGIDlangId=GetSystemDefaultLangID();strDllName.Format("%sRes%d.dll",AfxGetAppName(),langId);//LoadresourcewithsamelanguagehRes=AfxLoadLibrary(strDllName);if(hRes==NULL)//Ifthedllnotexist,loadEnglish(U.S.A)

4、resourcehRes=AfxLoadLibrary(_T("FBKSRes.dll"));if(hRes!=NULL)AfxSetResourceHandle(hRes);//###################################################DLL文件命名规则为了实现程序根据操作系统语言自动调用相应的DLL资源文件的功能,需要制作DLL的时候按照以下规则进行命名:应用程序名Res语言ID.DLL例如:FBKSRes2052.DLL,其中FBKS是应用程序名,2052是简体中文的语言ID(十进

5、制,可在MSDN中查到16进制的值,转换一下即可)。另外,程序中要求在调用不到对应语言的DLL文件的时候,会调用英文(美国)DLL文件,因此英文(美国)DLL文件采取这样的命名规则:应用程序名Res.DLL修改安装程序如果希望做一个自适应的安装程序(就是说无论在什么语言的操作系统上安装——只要你做了该语言的DLL,程序都会调用相应语言的DLL资源),需要把所有的DLL资源都做到安装程序中,并且要求安装程序最终将这些DLL拷贝到程序执行文件所在的目录。如果只针对某一语言(比如中文)的操作系统制作安装程序,中文的资源DLL当然必须要做

6、到安装程序中。另外特别注意:因为程序在找不到与操作系统语言相同的资源DLL的时候,会默认调用英文资源DLL,所以在制作安装程序的时候,无论以上两种情况的哪一种,一定要把英文(美国英语)DLL资源做到安装程序中。补充:如果是基于对话框的程序,程序定义有快捷键,则应将应用程序变量m_hInstance和hRes相关联,否则,快捷键将无效。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。