- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在VC 5.0中实现基于MFC的组件的本地化
在VC 5.0中实现基于MFC的组件的本地化Visual C++(以下简称VC)是微软公司的Visual 系列软件开发工具之一。对非英语地区的程序员,不可避免地要解决软件的本地化问题。VC 本身就支持多语种编程,给本地化带来了极大的方便。这里我们 主要讨论基于 MFC 的组件的本地化。 要实现那些使用 MFC 的组件的本地化,需要解决下面两个问题。 组件本身的本地化 第一问题是,要实现组件本身的一些特殊资源的本地化,例如字符 串、对话框等等。由于大多数在 MFC 基础上构架的组件也包含和使 用了一部分由 MFC 定义的资源,所以必须同时本地化这些 MFC 资源 。幸运的是,MFC 本身已提供了多种语言的本地化版本,它们包括:汉 语、德语、西班牙语、法语、意大利语、日语和韩国语。存在于VC光 盘中相应的 DevStudi VCMFC[src|include]l.xxx 目录下, l 代表本地化的意思,l.chs即代表简体中文。将这些目录下的* .rc 文件拷入硬盘中相应的目录即可。当应用程序与MFC之间采用静 态链接的模式时应采用该方法,但它只在VC 5.0的专业版与企业版中 才支持。 大多数的应用程序与MFC之间采用动态链接的方式,这时在Win95 的system目录下必须有相应的MFC 资源 DLL 文件的本地版本——MFC 4xLOC.DLL(Pwin95 OEMSR2版本提供的是MFC0 LOC.DLL)。将VC光盘的目录 DevStudioVCRedist 中的文件:MFC42xxx.DLL 拷贝入Pwi95 的system目录下,并更名为:MFC42LOC.DLL即可(其中MFC42CHS.DLL即 代表简体中文版的资源 DLL 文件)。拷入前除了要解决同名DLL相覆 盖的版本问题外,还应注意以下两方面的内容 首先,不应该在英文版的系统(如英文 Win95)上安装 MFC4xLOC.D LL。因为英文版的资源文件代码已内建于MFC4x.DLL 中,应用程序从M FC4x.DLL 中载入代码的速度比从 MFC4XLOCD LL 中先搜寻再载入代 码的速度要快得多。 其次,由于有多个版本的 MFC4xLOC.DLL ,在VC光盘的目录 DevStudioVCRedist 中可同时找到如:MFC4xCHS.DLL——简体中文版本 、MFC4xDEU.DLL——德国版本、MFC4xESP.LL——意大利版本等等。 所以在安装之前,应先确定所安装的MFC4xLOC.DLL 的本地版本代 号与所使用的Window 系统是否相一致,例如:只有MFC42CHS.DLL 才能 安装在 Pwin95 的系统上。 需要指出的是,以上的方法会给应用程序的安装带来一定的复杂 性,因为用户的系统下可能会安装多种本地化版本的应用程序。例如: 支持简体中文;后来又装了一个日文版的软件而链接库文件MFC4xLOC.DLL 只有一个,若后者覆盖了前者,应用程序运行时就会发生资源链接 出错。所以我们建议采用另一种方法,即建立自己的本地版本的MFC 资源 DLL 文件,而不是直接调用MFC4xLOC.DLL 文件,该方法后面会继 续分析。 处理代码 第二个问题是,应处理好各组件本地化资源的代码,使之能良好地 运行于目标环境。大多数情况下,这依赖于应用程序对字节的高位及 双字节字符的处理能力。在缺省情况下,MFC对它们直接支持。 所以,本地化应用程序和DLL实质上只需用本地语言改写相应的资 源即可。如果C++源代码中不带有需要本地化的字符串或正文,那么只 需对资源文件作修改。实际上,用户可以实现自己的组件,这样无须重 建原始代码即可获得本地版本。这或许很复杂,但很值得,MFC本身也 采用这种技术。可打开资源文件编辑器直接用本地语言进行编辑,但 这样每次版本的升级都需对应用程序进行重建。 注意:VC 4.0或以后的版本直接支持多种语言的.RC文件。 避免这样做的一种方法就是建立一个分离的DLL并对其进行本地 化,该 DLL 有时也叫做卫星式 DLL。在程序运行期间它将被动态地 进行链接,此时资源将从这个卫星式 DLL载入,而不是从代码的主模 块载入。MFC 直接支持这种方法,MFC4xLOC.DLL 本身就是一个本地化 的卫星式 DLL,只不过是在缺省状况下是由 MFC 提供的。我们可以 建立一个自己的卫星式 DLL,如有一名为MYAPP.EXE 的应用程序,它 的所有资源全来源于一个叫做 MYRES.DL 的文件。这些都在其应用程 序的InitInstance 事件中完成,如下所示: CMyApp::InitInstance(){ // 初始化代码的开始部分 HINSTANCE hInst = LoadLibrary(myres.dll); if (hIns
您可能关注的文档
最近下载
- 中兴5GC专家认证考试题库大全-上(单选、多选题汇总).doc VIP
- 2025年安徽省职业技能竞赛(计算机软件测试员)备赛试题库资料(含答案).pdf VIP
- 膝关节运动损伤自我诊断课件.pptx VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx VIP
- SPL Phonitor2 120V专业耳放Phonitor 2 BA EN说明书用户手册.pdf
- (2024秋新版本)教科版一年级科学上册全册PPT课件.pptx
- 《卫星运行时间》教学设计.doc VIP
- 2025年秋新人教版二年级上册数学全册同步课件.pptx
- GB50497-2019 建筑基坑工程监测技术标准.docx VIP
- 《竞赛规程》课件.ppt VIP
文档评论(0)