求助: DLL使用问题
delphi吧
全部回复
仅看楼主
level 5
龍千魄 楼主
各位兄弟,抱歉,我又来询问了。
我用的是D7 因为要增进效能,经询问后使用DLL方式。
但今天测试了DLL两个方法
一个 .RES & .RC
一个 .DLL的方式
---这是我RC的内容--
AllGet10 RCDATA "D:\Downloads\effect__00000.png"
AllGet11 RCDATA "D:\Downloads\effect__00001.png"
AllGet12 RCDATA "D:\Downloads\effect__00002.png"
AllGet13 RCDATA "D:\Downloads\effect__00003.png"
AllGet14 RCDATA "D:\Downloads\effect__00004.png"
...以下删除
--这是调用 RES & RC的程序部分编码--
上面有引用 {$R 'FP.res' 'FP.rc'}
procedure TForm1.Button1Click(Sender: TObject);
var
png: TPNGObject;
i : integer;
begin
png := TPNGObject.Create;
Image1.Visible := True;
for i := 0 to 121 do
begin
png.LoadFromResourceName(HInstance, 'AllGet1' + IntToStr(i));
Image1.Picture.Assign(png);
delay(60);
end;
end;
--以上没有问题可以执行,但没有改变运行档庞大的问题--
所以改用dll做法
--所以我把包好的DLL丢到目录下--
--以下是调用DLL的程序编码--
procedure TForm1.Button1Click(Sender: TObject);
var
h: THandle;
res: TResourceStream;
png: TPNGObject;
i : integer;
begin
h := LoadLibrary('\FP.dll');
png := TPNGObject.Create;
Image1.Visible := True;
for i := 0 to 121 do
begin
res := TResourceStream.Create(h, 'AllGet1' + IntToStr(i), RT_RCDATA);
png.LoadFromStream(res);
Image1.Picture.Assign(png);
delay(60);
res.Free;
end;
end;
--这一次却报错错误讯息为
Resource AllGet10 not found
请问这是甚麼问题?
或是有更好的方法??
请各位兄弟帮忙一下。
2014年04月07日 10点04分 1
level 13
dll中的方法,要export公布出来吧
2014年04月07日 14点04分 2
我没有调用dll中的方法 我是调用里面的图片。
2014年04月08日 00点04分
回复 龍千魄 :图片为什么要放在dll中,放在rs里不行吗?
2014年04月08日 16点04分
如果用{$R 'x.res' 'x.rc'} 一样会包进exe档中,这样没有解决我的效能问题 所以我选择DLL要用在读取。
2014年04月09日 16点04分
回复 龍千魄 :谁说的?你自己建一个.res文件啦,把图片放到res文件中,你上网查查.res文件的建立打包方法吧
2014年04月09日 17点04分
level 5
龍千魄 楼主
我已经解决了 原来是我指定的位置少了一个.
2014年04月09日 15点04分 3
1