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

前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件 。下面把具体的方法写出来。供大家参考一下。

第一步、创建中英文版本资源文件

我们先创建第一个中文版本工程,假设工程名称为 Example,在向导第一步的“What language would you like you resource in” 选择中文 (如下图),其它使用缺省值。

然后在工程中把 Example.rc 删除,这里虽然删除了文件,但实际上在工程文件目录文件还是存在的。进入工程目录下把资源文件名改成Example_Ch.rc,再在 VC 编译器中加入 Example_Ch.rc 文件 ,关闭工程。

然后再创建一个同名的英文版本工程。也就是在选择资源语言时选择英语(可以保存在不同的目录下)

创建完后,把英文版本目录下的 Example.rc 文件拷贝到中文工程的目录下,其实我们就只是要这个资源文件。并把名称改为 Example_En.rc。

第二步、在工程中设置版本信息

打开中文件工程,把英文资源文件添加进工程,在添加时会有提示出现,不要理会,按确认就行。

选择菜单 Build->Configurations,增加一个工程配置,在Configuration中输入 Debug English 在 Copy Setting from 中选择 Debug 就可以(见下图),使用相同的方法,再增加一个 Debug Chinese 配置,并把原来的 Debug 删除。

时间: 2024-08-03 04:10:20

VC在一个工程中实现多语言版本的相关文章

如何在VC控制台工程中向密码输入框Activex PostMessage()?

问题描述 向各路大虾求助.-----------Usecase刚接触COM组件.现偶有个问题,想写个java程序,用自己的账号自动登录某些网站,并爬取一些数据.但是这些网站大多都要求使用ActiveX密码输入框控件,且这些组件内部都有一段加密逻辑.所以,我想通过相应Java类库(如jacob)调用这段逻辑.---------------------------------------------------问题是:提供有相应API(如通过OLEViwer看到某些propput属性且确实有效)的A

在Linux系统中安装Go语言的详细教程

  这篇文章主要介绍了在Linux系统中安装Go语言的详细教程,由于国内很多人对谷歌的盲目追捧,导致Go语言在国内的人气远超国外...需要的朋友可以参考下 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装G

Linux有问必答-如何在Linux中安装Go语言

Linux有问必答-如何在Linux中安装Go语言 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo

在Linux系统中安装Go语言的详细教程_Golang

Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装.在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo apt-get install golang 检查G

【资料整理】VC工程中的各种文件

[.ncb] No Compile Browser,无编译浏览文件. 是VC++开发环境创建的跟踪文件,其中存放了供ClassView.WizardBar和Component Gallery使用的信息.当自动完成功能出问题时可以删除此文件. 在实际的开发中,有时会遇到以下几种情况: 1.向类中添加的成员变量或者成员函数不能在ClassView中显示. 2.不能通过双击成员变量或成员函数转移至变量或函数的定义的位置. 3.一般情况下,在输入一个类的对象后,按下"."后会出现该类的成员变量

vc++-VC++MFC工程做自适应中值滤波

问题描述 VC++MFC工程做自适应中值滤波 求完整的自适应中值滤波程序,要求有源程序,可执行程序.之前在网上找的都不太好模仿,希望直接在view里做,不要各种引申函数,就在一个大括号里做完的.拜托拜托!!急啊! 解决方案 恕我直言题主,您的第二张图片中的代码完全看不清楚 解决方案二: CXXXXXDoc* pDoc = GetDocument(); int iH,iW; LPSTR lpDIB; LPSTR lpDIBBits; lpDIB = (LPSTR) ::GlobalLock((HG

VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法_C 语言

换了一台电脑,vc6.0程序中,点击打开文件以及向工程中添加文件时,程序竟然崩溃自动退出了. 不知什么原因,安装相同的vc程序,本本竟然出现此缘故.但是这个操作又是自己经常用到的,所以不得不解决. 与上一台电脑不同的是,此电脑是win7系统,而上一个则是xp系统.此电脑office是2010版本,而上一个则是WPS:于是乎,在网上查资料,来解决. 看到网上也有类似的问题,有的说是win7系统原因,有的说是office2007版本缘故,有的说是viso缘故.总之,这几种说法,我都符合.win7系统

VC++工程中加入SplashScreen原理释解

摘要 本文旨在剖析VC++工程中加入 SplashScreen 的原理,并给出在VC++ MFC(exe)工程中加入 SplashScreen 的步骤. 关键字 SplashScreen,原理 环境:Windows 98SE/2000,VC++ 6.0 SplashScreen - 我们使用 Word 之类的软件在启动的短暂时间里就会看到它的身影.它通常用以在程序启动时显示程序及用户名称,版权信息等.我也不知道它准确的名称是什么(是闪屏吗?),就这样称呼吧.也许你也想在自己的工程里加入这样的特性

VC 如何实现将创建的多个非模态对话框合并在一个对话框中(像QQ聊天室一样)?

问题描述 VC 如何实现将创建的多个非模态对话框合并在一个对话框中(像QQ聊天室一样)? //点击该按钮创建子窗口61 void CCDockDlgDlg::OnBtnCrtdlg() { // TODO: Add your control notification handler code here CChildDlg *dlg_Child = new CChildDlg; dlg_Child->Create(IDD_CHILD_DLG); dlg_Child->ShowWindow(SW_