Windows 下编译 EXE 文件时把一个外部 txt 文件编译到 EXE 里面

写程序时,边写程序边写文档。其中一些文档,可以打包进 EXE 里面,然后作为程序的帮助或说明。之所以不用外部文件,是因为发布一个 EXE 就足够。新版的 EXE 自包含新版的说明,避免EXE更新了,说明文档没跟上的麻烦。

一个 .rc 资源文件,是一个文本文件。这个文本文件的内容,就是要打包引用的文本文件的文件名。
可以在一个工程里,添加一个资源文件。添加完以后,工程的 uses 前面,就会出现对这个资源文件的引用: {$R 'MyTest.res' 'MyTest.rc'}


然后,程序里就可以使用这个 MyTest.res 资源了。


因此,在代码阶段,所有东西都是可编辑的文本 -- 代码,资源文件,外部 txt 文件。


1. 自己写一个内容为程序使用方法的文本文件;
2. 在 delphi 工程里,添加一个资源文件(.rc 文件)。这是一个文本文件。给这个 .rc 文件一个名字。添加完成后,工程文件里面会自动出现对这个资源文件的引用代码。
3. 在 .rc 文件里面,添加对文本文件的引用。引用方式是写一行文本,如下:
MyRes1 Mytext Readme.txt


上述文本,第一个 MyRes1 是资源名称;第二个 Mytext 是这个资源的类型(自定义的),第三个 Readme.txt 是要引用的文本文件的文件名。


到这里,编译程序的时候,这个 Readme.txt 的内容会被编译到 EXE 里面,作为一个资源存在。


程序里,需要这个资源的地方,使用以下方式调用:

procedure TForm2.Button1Click(Sender: TObject);
var
  Res: TResourceStream;
  AStream: TStringStream;
  S: string;
begin
  //资源文件里面的内容是:MyRes1 Mytext Readme.txt
  Res := TResourceStream.Create(HInstance, 'MyRes1', PChar('Mytext'));
  AStream := TStringStream.Create;
  try
    Res.Position := 0;
    Res.SaveToStream(AStream);


    AStream.Position := 0;
    Memo1.Lines.Add(AStream.DataString);
  finally
    Res.Free;
    AStream.Free;
  end;
end;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值