博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BCB如何加载字符串资源文件(语言资源文件)?
阅读量:4140 次
发布时间:2019-05-25

本文共 1441 字,大约阅读时间需要 4 分钟。

         如何在软件.exe中嵌入语言资源呢。常规的想法是, 将语言字符串放到一个文件中, 然后在程序中去读取。 然而这样做存在一个问题: 最后发布的.exe必须依赖于语言字符串文件, 比如lang.txt.   于是, 我们想, 能不能把这些字符串通过某种方式嵌入到.exe中呢? 这样, 在发布程序的时候, 就不用管语言资源了。

        当然可以, 且看步骤:

1.  建立一个C++ Builder工程, 顺便画出控件布局。

2. 在当前目录下添加资源文件lang_ch.rc和lang_en.rc, 并且要添加到工程中, 便于编译生成应用程序需要的lang_ch.res和lang_en.res.   发布.exe程序的时候, 不需要发布lang_ch.res和lang_en.res, 因为他们已经内嵌在.exe中。

3. 写如下代码, 然后编译连接, 运行。

      

       代码如下:

 

//---------------------------------------------------------------------------#include 
#pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ Label1->Caption = LoadStr(1); // LoadStr是系统库函数, 此时, 从嵌入.exe中的lang_ch.res中读取字符串 Label2->Caption = LoadStr(2);}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){ Label1->Caption = LoadStr(101); Label2->Caption = LoadStr(102);}//---------------------------------------------------------------------------

     资源文件lang_ch.rc和lang_en.rc如下:

 

 

STRINGTABLEBEGIN1 "姓名:"2 "学号:"END

 

STRINGTABLEBEGIN101 "Name:"102 "ID:"END

 

 

      编译连接运行后, 程序可实现双语切换:

 

你可能感兴趣的文章
【JAVA数据结构】先进先出队列
查看>>
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
VUe+webpack构建单页router应用(一)
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
PHP 7 的五大新特性
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>