放置任意的文件到Delphi的EXE文件里面
通常在Delphi的應用程序中,我們會(huì )調用到很多的資源,例如圖片,動(dòng)畫(huà)(AVI),聲音,甚至于別的執行文件。當然,把這些資源分布到不同的目錄不失為一個(gè)好辦法,但是有沒(méi)有可能把這些資源編譯成標準的windows資源從而鏈接到一個(gè)執行文件里面呢?
我們可以自己做一個(gè)RC文件,例如 sample.rc ,RC文件其實(shí)就是一個(gè)資源文件的描述文本,通過(guò)“記事本”程序創(chuàng )建就行了。然后可以輸入一些我們要定義的資源,例如:
MEN BITMAP c:\bitmap\men.bitmap
ARJ EXEFILE c:\arj.exe
MOV AVI c:\mov.avi
然后用BRCC32把這個(gè)RC文件編譯成sample.res(真正的資源文件)。
在Delphi的工程文件中使用 $R 編譯指令讓Delphi包括資源到EXE文件里面。
{$R sample.res}
這樣我們就可以在這個(gè)單一的執行文件中調用資源了。舉例如下:
EXEFILE:
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName);
Res.Free;
end;
AVI:
procedure LoadAVI;
begin
{Avi1是一個(gè)TAnimate類(lèi)}
Avi1.ResName:=‘AVI‘;
Avi1.Active:=True;
end;
來(lái)自:myjane, 時(shí)間:2004-10-29 20:48:51, ID:2872158
晴雯:能不能寫(xiě)清楚點(diǎn)?我只需要DLL文件。如何釋放哪?
來(lái)自:ldmwl113, 時(shí)間:2004-11-2 8:17:52, ID:2875642
幫頂
來(lái)自:Avalon, 時(shí)間:2005-4-19 10:29:01, ID:3049486
v_RS :TResourceStream;
if not FileExists(ExtractFilePath(Application.ExeName)+‘cabarc.exe‘) then
begin
v_RS:=TResourceStream.Create(HInstance, ‘cabarc‘, ‘EXE‘);
v_Rs.SaveToFile(ExtractFilePath(Application.ExeName)+‘cabarc.exe‘);
v_Rs.Free;
end;

