请问如何把Icon、Jpg、Bmp等资源文件里的东东放入DLL里,然后如何实现调用,谢谢!
解决方案 »
- 为什么imageList不生效?
- Delphi 2005的VCL支持Unicode 吗?
- 请部TQUERY查询的结果如何保存为文件?
- 哪位大哥知道如何在自己的程序中实现下载文件功能,从HTTP下载
- 怎样用代码实现删除Txt里的硬回车?
- 寻求win98底下的APIHOOK源码!我的Email:[email protected].
- 邮件接收邮件系统,为什么收到乱码?进入者,就有分!
- 谢谢 wangqiang75,帮了我的大忙,wangqing75请进加分
- 查询数据集结果正确,报表结果异常
- ##### 20 分#####如何知道CURSOR在当前的STRINGGRID的CELLS的位置
- 怎样检测?
- 普通的问题 答对的得完分
HELLOJPEG RCDATA your.jpg
HELLOBMP BITMAP your.bmp
HELLOICON ICON Your.ico
然后用brcc32对rc文件进行编译,生成res文件就可以了。
在DLL中加一句
{$R Your.Res},编译一下即可。
建立你的资源文件,然后包含的应用程序里面就可以了
主程序代码: 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 Stream :=TResourceStream.Create(AiGetJpgRes(PChar('LOGIN')),'LOGIN','JPEG');
Try
MyJpg:=TJpegImage.Create;
try
MyJpg.LoadfromStream(Stream);
Image1.Picture.Assign(MyJpg);
Finally
MyJpg.Free;
end;
Finally
Stream.Free;
end;
end;DLL中代码:{$R Ai92RES.RES}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.