function AiGetJpgRes(AResName:PChar):THandle; far;external 'Ai9Res.dll';
function AiGetBmpRes(AResName:PChar):THandle; far;external 'Ai9Res.dll';
function AiGetIcoRes(AResName:PChar):THandle; far;external 'Ai9Res.dll';
function AiGetCurRes(AResName:PChar):HCursor; far;external 'Ai9Res.dll';
function AiGetStrRes(AResName:Integer):String; far;external 'Ai9Res.dll';
其中JPG图的调用如下:
procedure TForm1.Button2Click(Sender: TObject);
var
Stream:TResourceStream;
MyJpg: TJpegImage;
begin
function AiGetJpgRes(AResName:PChar): THandle; export;
begin
FindResource(hInstance, PChar('JPEG'),AResName);
Result := hInstance;
end;
function AiGetBmpRes(AResName:PChar): THandle;export;
begin
FindResource(HInstance,'BITMAP' ,AResName);
Result:=HInstance;
end;
function AiGetStrRes(AResName:Integer):string; export;
begin
Result:=LoadStr(AResName);
end;
function AiGetIcoRes(AResName:PChar): THandle; export;
begin
Result := LoadIcon(HInstance,AResName);
end;
function AiGetCurRes(AResName:PChar): HCursor; export;
begin
Result:=LoadCursor(HInstance,AResName);
end;
exports
AiGetBmpRes index 1,
AiGetJpgRes index 2,
AiGetIcoRes Index 3,
AiGetCurRes index 4,
AiGetStrRes index 5;
end.
procedure TForm1.Button1Click(Sender: TObject);
var
h : THandle;
Icon : THandle;
begin
h := LoadLibrary('RESTEST.DLL');
if h <= BadDllLoad then
ShowMessage('Bad Dll Load')
else begin
Icon := LoadIcon(h, 'ICON_1');
DrawIcon(Form1.Canvas.Handle, 10, 10, Icon);
FreeLibrary(h);
end;
end;
首先用记事本建立一个扩展名为.rc的文件,内容如下(供参考):
Music RCDATA "d:\Music\笑傲江湖.wav"
Video RCDATA "E:\delphi6\Demos\CoolStuf\SpeedIs.avi"
将其保存到工程文件所在目录,然后编译为资源文件,方法如下:
E:\delphi6\bin\brcc32.exe e:\YourProjectPath\xxxxx.res
然后在源文件中加入该资源文件
{$ xxxxxx.res}
//读取资源
procedure TForm1.Button1Click(Sender: TObject);
begin
with TResourceStream.Create(HInstance, 'Music', RT_RCDATA) do
begin
SaveToFile('c:\temp.wav');
Free;
end;
end;