Delphi 利用 LoadLibrary 载入图片

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



--------------------------------------------------------------------------------



第一步: 建一个 DLL 工程:



然后保存, 我这里使用的名称为MyDLL.



--------------------------------------------------------------------------------



第二步: 在这个工程文件中建一个资源原文件:



编辑内容如下(路径中的文件一定要存在):

img1 BITMAP "c:\temp\test.bmp"


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



--------------------------------------------------------------------------------



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



此时, 工程源文件中会添加一句: {$R 'MyRes.res' 'MyRes.rc'}, 我们需要的源文件这样即可:


library MyDLL;


{$R 'MyRes.res' 'MyRes.rc'}


begin

end.


然后 Ctrl+F9 编译; 此时在工程目录下会生成我们需要的 MyDLL.dll.



--------------------------------------------------------------------------------



第四步: 把刚才的 MyDLL.dll 文件复制到 c:\temp 下.

这样过会我们可以通过 c:\temp\MyDLL.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\MyDLL.dll'); {载入 DLL}


  bit := TBitmap.Create;

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


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


  FreeLibrary(h);                           {载卸 DLL}

  bit.Free;

end;


end.


你可能感兴趣的:(图片,资源,工程,源文件)