学习使用资源文件[11] - DLL 中的资源文件


本例将把一张 bmp 图片, 以资源文件的方式嵌入 dll, 然后再调用.

第一步: 建一个 DLL 工程, 如图:
26153815_PQNE.png

然后保存, 我这里使用的名称都是默认的.

第二步: 建一个资源原文件, 如图:
26153815_0gEI.png

编辑内容如下(路径中的文件一定要存在):
img1 BITMAP "c:\temp\test.bmp"

然后, 取个名(后缀须是 rc, 我这里取名为 Res.rc), 保存在工程目录下.

第三步: 在 DLL 工程中添加这个资源原文件, 如图:
26153815_8kIp.png

此时, 工程源文件中会添加一句: {$R 'Res.res' 'Res.rc'}, 我们需要的源文件这样即可: library Project1; {$R 'Res.res' 'Res.rc'} begin end. 然后 Ctrl+F9 编译; 此时在工程目录下会生成我们需要的 Project1.dll.

第四步: 把刚才的 Project1.dll 文件复制到 c:\temp 下.
这样过会我们可以通过 c:\temp\Project1.dll 找到这个文件. 至此 DLL 制作完毕.

第五步: 重新建一个 VCL Forms Application 工程, 代码如下:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var
  h: THandle;
  bit: TBitmap;
begin
  h := LoadLibrary('c:\temp\Project1.dll'); {载入 DLL}

  bit := TBitmap.Create;
  bit.LoadFromResourceName(h, 'img1');      {提取资源}

  Canvas.Draw(10, 10, bit);                 {在窗体上绘制图片}

  FreeLibrary(h);                           {载卸 DLL}
  bit.Free;
end;

end.

 
 
 
 
 

 

 

  

//效果图:
26153816_B0zZ.png

转载于:https://my.oschina.net/hermer/blog/320609

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值