本例將把一張 bmp 圖片, 以資源文件的方式嵌入 dll, 然後再調用.
第一步: 建一個 DLL 工程, 如圖:
然後保存, 我這裡使用的名稱都是默認的.
第二步: 建一個資源原文件, 如圖:
編輯內容如下(路徑中的文件一定要存在):
img1 BITMAP "c:\temp\test.bmp"
然後, 取個名(後綴須是 rc, 我這裡取名為 Res.rc), 保存在工程目錄下.
第三步: 在 DLL 工程中添加這個資源原文件, 如圖:
此時, 工程源文件中會添加一句: {$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.
//效果圖: