用VC++实现软件的多语种支持

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

用VC++实现软件的多语种支持 作者:卞远 发布时间:2001/04/25
 
 
 
文章摘要:
  本文介绍了如何编制自己的双语或多语种软件。首先,创建一个包含所有英文资源的DLL,在使用这个资源DLL时,应用程序就会以英文形式出现,即软件为英文版;然后,创建中文DLL,再次运行StateDemo程序,程序就以中文形式出现(即使应用程序未被重新编译)。
  关键词 VC++,应用程序,英文资源,中文资源 
        

--------------------------------------------------------------------------------
 
正文:   

用VC++实现软件的多语种支持 


前言

  只用一套源代码就可以方便地支持多种文字和多个地域,那么这个软件就可以方便地被翻译成本地版本,这个过程叫做地域化(Localization)。怎样才能不修改任何源代码就使之能动态地转换到不同的地域资源上呢?那就是使用Windows的程序特性之一--资源。把在软件中用到的可见资源维系在一个资源DLL(Dynamic Link Library动态链接库)中,就能使地域化很容易地被实现,因为它把具体的文字组件单独提取放在一个文件中,所以,一个可执行文件就可以装载几种不同的语言文字,并且选择用子程序来装载适合的文字DLL。创建一个CString对象的实例,并用该字串的资源标识符(string ID)调用LoadString,即可避免繁琐的字串编码工作。
  在大多数情况下,资源包含在应用程序的单元中,如果调用AfxSetResource Handle,就可以指向另一个不同的单元,我下面给出的StateDemo程序就是这样处理的。调用AfxSetResource Handle,从DLL资源中采集软件所需资源,通过替换掉不同语种的DLL资源,程序便可以使用一套完全不同的资源(如String字串、Dialogue对话框、Bmp位图、Menu菜单等)。
  初始情况下,作为主执行体的StateDemo不含任何资源。首先,创建一个包含所有英文资源的DLL,在使用这个资源DLL时,应用程序就会以英文形式出现,即软件为英文版;然后,创建中文DLL,再次运行StateDemo程序,程序就以中文形式出现(即使应用程序未被重新编译)。

I. 应用程序的创建与编译

(1)创建StateDemo.EXE文件(1)创建StateDemo工作区
  在Microsoft Visual C++ 5.0开发环境下,单击File | New选项,在创建类型选择框New中选择MFC AppWizard(exe)、Projectname:StateDemo,创建新项目StateDemo工作区,应用程序类型选择Multiple Documents,单击Finish完成工作区的建立。
(2)添加字串资源
  这步实际上是在为英文资源DLL添加字串资源,因为后面将把英文资源StateDemo.rc从项目中移走,并把它拷贝到英文资源的项目中,而不是刚建立的StateDemo.EXE文件项目,执行体exe文件会引用这个资源,而字串就在资源DLL中。选择StateDemo项目资源中的String Table,在StringTable中单击右键选择New String,添加如下代码,然后选择菜单中File | Save All选项即完成。
  ID:IDS_MINE=300   //主框架IDS_MINE定义为300,即ID的值为300
  Caption(标题):Hi! it's my demo vc5 program of English version.
(3)添加CStateDemo类的数据成员
  本程序要动态地装入包含所有资源的DLL,所以必须保存DLL的Handle(句柄),在后面会释放Handle,并在CStateDemoApp类中添加私有数据成员(代码如下)。
  private:
  HINSTANCE m_hDemoDLL;//资源DLL handle句柄
  可以在MS-VC5的DevelopStudio位于左方的Workspace窗口中选择ClassView标签,单击CstateDemoApp类,单击鼠标右键选择Add Member Variable,然后输入Ty

VC++实现软件多语种支持 作者:卞远 VC++实现软件多语种支持 作者:卞远 发布时间:2001/04/25 文章摘要:  本文介绍了如何编制自己的双语或多语种软件。首先,创建一个包含所有英文资源的DLL,在使用这个资源DLL时,应用程序就会以英文形式出现,即软件为英文版;然后,创建中文DLL,再次运行StateDemo程序,程序就以中文形式出现(即使应用 阅读详情

相关推荐

MFC程序双语言实现

1.对于“对话框”、“菜单”、“工具栏”三种的双语言实现采用MFC资源控制方式实现,例如: 1.  新建工程 新建了一个对话框工程,工程名称为MultiLanguages,默认语言选择是“中文”。 2.  添加多国语言的资源 在创建工程后,工程会添加默认的资源,如主对话框,都是“中文”资源。现在我们需要添加相应的英文的资源文件。 为主窗口IDD_MULTILANG

菜鸟天路 1373

在VC工程中添加多语言支持

利用VC可视化编辑环境为每种语言制作一套资源ID一一对应的资源集并编译生成DLL文件。应用程序初始化时按预设的语言设置选择合适的资源DLL调入,使用资源时依据资源ID进行访问,这样即可实现软件的多语言支持

C++项目实现多国语言解决方案

背景在实际项目开发当中,有些需求可能会要求我们实现多种语言,这里的语言是指界面上,一般就是在客户端,特指那些老外用户使用我们的产品时,为了更好的使用客户端和上手,我们需要将语言翻译成当地的语言。当然,有时候需要同时适配十几种语言,因为产品用户波及五大洲四大洋,这个时候就需要有一个比较好的架构来实现这个需求。有些程序员可能就比较毛糙,简单的使用宏定义,或者说在代码中不断的写if...else..这样的方式是不可取,并且为项目主导者所诟病。编码问题多国语言的存在、不同语言操作系统的存在,使得针对多语言的设计颇费

dream it possible 1510

VC实现多语言程序版本

VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本

转载:VC在一个工程中实现多语言版本

转载地址:http://www.vckbase.com/index.php/wv/813 VC在一个工程中实现多语言版本 前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不

春夜喜雨的专栏 1448

VC++实现软件多语种支持及动态库动态加载

  用VC++实现软件多语种支持 收藏  转自http://blog.csdn.net/welcome_ck/archive/2004/12/24/227893.aspx前言  只用一套源代码就可以方便地支持多种文字和多个地域,那么这个软件就可以方便地被翻译成本地版本,这个过程叫做地域化(Localization)。怎样才能不修改任何源代码就使之能动态地转换到不同的地域资源上呢?那就

郭家佑VC/C++/C 1472

VC++实现软件多语种支持 作者:卞远 (转)

VC++实现软件多语种支持 作者:卞远 (转)[@more@]用VC++实现软件多语种支持 作者:卞远 发布时间:2001/04/25 文章摘要:   本文介绍了如何编制自己的双语或多语种软件。首先,创建一个包含所有英...

csd3176的博客 117

VC++软件授权加密与管控(附demo)

VC++常用功能封装代码一系列文章与源码 https://blog.csdn.net/kaizi318/article/details/108846326 思路:1.组合获取电脑硬件信息,然后根据这些信息生成请求授权文件 2.根据请求文件生成授权加密文件,支持授权到期时间,与授权次数,或者两者并用 3.软件加载授权加密文件使其生效! 功能:绑定了电脑,换电脑不能使用,到期不能使用,到次数不能使用! //收集硬件信息,生成请求授权文件 (应用程序...

Keivin 3万+

VC++软件启动画面设计与实现

MFC库中包含了许多预定义的类,这些类为开发者提供了丰富的功能。MFC类库大体上可以分为两大类:应用程序框架类和控件类。应用程序框架类为整个应用程序的运行提供了框架,而控件类则提供了各种常见的GUI控件,如按钮、文本框、列表框等。MFC的基本类还包括了用于管理Windows窗口的CWnd类,管理用户输入的CWinApp类,以及处理消息的CCmdTarget类等。这些基础类是构建MFC应用程序的基石,理解它们的作用和使用方式对于利用MFC进行Windows编程至关重要。

weixin_26854475的博客 1018

VC++实现的高效CAD绘图软件开发

CAD(Computer-Aided Design)软件是利用计算机技术帮助设计师进行工程或产品设计的软件工具。随着技术的进步,CAD软件从最初的基础绘图工具发展成为集成化、智能化的复杂系统。现代CAD软件不仅能够提供精确的绘图功能,而且集成了工程分析、仿真模拟、参数化设计等多种高级功能,大大提升了设计效率和质量。Visual C++(简称VC++)是微软公司推出的一款集成开发环境(IDE),主要用于C和C++语言的开发。自1993年首次发布以来,VC++经历了多个版本的迭代和演进。

weixin_35189483的博客 1032

VC++常用功能开发

系列文章目录 第一章:VC++ ini配置文件封装类源代码 第二章:VC++实现二维码(显示+保存图片)功能源代码 第三章:VC++ 调节系统音量(与任务栏音量同步)源代码 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启..

Keivin 17万+

VC++实现即时通讯软件教学项目

Windows平台下,VC++(Visual C++)一直是推动软件开发创新的重要工具。作为一款功能强大的编程语言,VC++不仅在系统级编程中有着举足轻重的地位,而且在开发高性能Windows应用方面也拥有独特的优势。在下一章节中,我们将深入探讨VC++如何在用户注册与登录流程中发挥作用。我们会逐步解析用户界面的设计和信息的验证存储机制,让大家更好地理解VC++在实际项目中的应用。本章节详细介绍了聊天窗口的设计和实现,包括界面布局设计、交互逻辑设计和技术实现

weixin_42515392的博客 1035

VC++ MFC实现Modbus串口调试软件详解

本文还有配套的精品资源,点击获取 简介:本文介绍了一款基于VC++ MFCMicrosoft Foundation Classes)编写的串口调试软件,它内置了Modbus通信协议,特别适合Modbus通讯的调试。Modbus是一种广泛应用的工业通信协议,而VC++ MFC用于创建GUI,处理串口参数设置和Modbus报文的发送接收。该软件支持Modbus RTU模式,并...

weixin_30205153的博客 1775

深入了解P2P聊天软件VC++源码:设计与实现

本文还有配套的精品资源,点击获取 简介:该源码是一款使用VC++开发的P2P聊天软件,具备文字、语音聊天和文件传输等QQ式功能。它为开发者提供了宝贵的资源,用于深入学习网络通信技术,特别是在P2P应用开发方面。开发者可以学习到如何利用Winsock API进行网络编程,处理TCP/IP协议栈的数据包,以及实现P2P网络中节点间的通信。源码包含了主程序、后台服务、文件传输和语...

weixin_32287387的博客 1112

VC++串口通信上位机软件开发实战

在工业自动化与物联网领域,上位机软件与下位机通信是实现数据采集和设备控制不可或缺的部分。本章将简要介绍上位机软件与下位机之间的通信机制,为后续章节中更深入的技术探讨提供基础。RS-232标准定义了多种信号线,其中主要有::发送数据信号线,由DTE向DCE发送数据。:接收数据信号线,由DCE向DTE发送数据。:信号地线,用于提供参考电位。

weixin_34581040的博客 1648

地震反演软件源代码解析与实现——基于VC++

地震反演技术是地球物理学领域用于从地震数据中推断地下介质物理属性的一种技术。它涉及到复杂的数学模型和计算过程,目的是为了更好地理解地球内部结构以及油气、矿产等资源的勘探。在VC++中,类是对象的蓝图或模板,用于描述具有相同属性和行为的对象集合。类的定义包括成员变量和成员函数。成员变量用于存储对象的状态,而成员函数则定义了对象可以执行的操作。// 类的定义示例private:// 私有成员变量public:// 公有成员变量。

weixin_42513928的博客 856

VC++与GDI+实现矢量绘图软件源代码剖析

GDI+是GDI的继承者,它支持更广泛的图形格式、更复杂的图形处理以及新的打印选项。GDI+通过引入Alpha混合、颜色管理、自定义路径等特性,大幅增强了绘图功能。开发者可以通过GDI+的封装好的类和方法,执行如绘制、变换以及抗锯齿等任务。MFC框架将一个应用程序分割为不同的模块和类,其中最核心的是文档-视图结构。文档类负责数据的存储和管理,而视图类则负责数据的展示和用户交互。MFC应用通常包含以下几个主要部分:应用程序对象(CWinApp):负责初始化和维护应用程序的全局状态。

weixin_34162851的博客 982
上一篇: 用VC++6.0编写拨号程序
下一篇: PC到PC的IP电话实现
kvw3000
博客等级 码龄23年 11粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值