mfc 应用程序 语言进行本地化.doc

上传人:laozhun 文档编号:2385661 上传时间:2023-02-17 格式:DOC 页数:5 大小:15KB
返回 下载 相关 举报
mfc 应用程序 语言进行本地化.doc_第1页
第1页 / 共5页
mfc 应用程序 语言进行本地化.doc_第2页
第2页 / 共5页
mfc 应用程序 语言进行本地化.doc_第3页
第3页 / 共5页
mfc 应用程序 语言进行本地化.doc_第4页
第4页 / 共5页
mfc 应用程序 语言进行本地化.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《mfc 应用程序 语言进行本地化.doc》由会员分享,可在线阅读,更多相关《mfc 应用程序 语言进行本地化.doc(5页珍藏版)》请在三一办公上搜索。

1、mfc 应用程序 语言进行本地化 在软件国际化的今天,资源从代码中独立出来,使在不同语言操作系统下能运行不同语言版本的程序,是很有意义的事. MFC 7.0 及更高版本提供对附属 DLL 的增强支持,该功能有助于创建针对多种语言进行本地化的应用程序。附属 DLL 是一个纯资源 DLL,它包含应用程序的针对特定语言进行本地化的资源。当应用程序开始执行时,MFC 自动加载最适合于环境的本地化资源。 使用Vs2005可以很方便的创建包含资源的dll.下面简要介绍其步骤: (1)新建一个与代码文件夹平级的文件夹,文件夹的名字为:代码程序的工程名字+Res。(2)将所有的资源文件(*.rc),位图,图标

2、文件和resource.h拷贝到资源文件夹下。(3)打开VS2005选择FileNewProject From Existing code,选择工程的种类为VC+,将工程文件的位置选定为资源文件夹,工程名称为资源文件夹的名称,Next后选择工程类型为DLL工程,然后一路Next下去直到完成。(4)在建立好资源工程后,打开该工程,为每一种语言建立一个工程配置项,在配置项中配置好输出路径。在LinkAdvance选项卡中选择Yes/NOENTRY,否则编译会有问题。每一种语言的配置项中只包含本语言的RC文件,其他语言的RC从Build中去除,去除的方法是在工作空间中右键单击该文件,选择属性,会弹出

3、该文件的属性对话框,选择GeneralExcluded From Build为Yes。(5) 在应用程序的APP类中声明一个资源实例句柄,例如HINSTANCE m_hResourceDLL,然后在InitInstance函数中使用LoadLibrary和AfxSetResourceHandle进行加载,例如: m_hResourceDLL = (HINSTANCE):LoadLibrary(strResFilePath); if( !m_hResourceDLL ) return FALSE; AfxSetResourceHandle( m_hResourceDLL );最后在ExitIns

4、tance函数中使用FreeLibrary函数进行卸载,例如if( m_hResourceDLL ) FreeLibrary( m_hResourceDLL );(6)可用GetUserDefaultUILanguage,GetUserDefaultLangID等检测操作系统语言以下是一些注意事项:(1)在获取资源路径时,LoadLibrary最好使用绝对路径,使用相对路径在某些语言操作系统就会失败。(2)代码中如果有的地方使用了PlantForm SDK中的函数(例如LoadIcon,LoadBitmap)来加载资源文件中资源(非标准资源),这些函数需要指定实例句柄,请使用AfxGetRes

5、ourceHandle函数来替换APP的实例句柄。(3) 并非使用Unicode资源,文字就可以在所有语言操作系统上正确显示,没有设置正确的字体也不行,特别是对繁体,韩文。“Microsoft Sans Serif”是相对包含各种语言最多的字体,韩文和繁体显示也是正常的,但该字体2000操作系统不支持。(4)代码中使用Textout,DrawText的地方如果没有设置,默认是System字体,该字体支持语言范围相对较小,推荐在使用上述函数前设置字体。(5)ATL生成的代码,rgs虽然在资源里,但那是注册时使用的脚本,不要也提到资源里。(6) 提出的资源文件(文本方式打开)里可以删掉3 TEXT

6、INCLUDEBEGIN1 TYPELIB AlarmWinConfig.tlbrn0END纯资源文件不会有类型库。(7)编译选项里可以去掉生成调试信息,导入库.因为对纯资源文件没什么意义.(8) 代码里的 字符串资源注意提到资源里,如一些报错的字符串,即硬编码.(9) rc资源文件(文本方式打开)里:3 TEXTINCLUDEBEGIN#define _AFX_NO_SPLITTER_RESOURCESrn#define _AFX_NO_OLE_RESOURCESrn#define _AFX_NO_TRACKER_RESOURCESrn#define _AFX_NO_PROPERTY_RESOURCESrnrn#if !defined(AFX_RESOURCE_DLL) | defined(AFX_TARG_CHS)rn#ifdef _WIN32rnLANGUAGE 4, 2rn#pragma code_page(936)rn#endif /_WIN32rn#include l.chsafxres.rc / Standard componentsrn#endifrn0END其中#include l.chsafxres.rc 为标准资源,不同语言其路径不一样,如果不添加标准资源,程序里需处理所有非法情况(10)最好程序和资源都采用静态连接编译.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号