有時候我們需要在主程序中添加sys和dll等二進制資源,當我們預期的sys和dll文件被刪改時,我們可以從資源中解壓。
首先編寫資源腳本文件,測試的腳本my.rc內容很簡單,只是當前目錄的一個文件,代碼如下:
viewpic bin ".\viewpic.exe"
然後我們需要將rc文件編譯成res,那樣我們的程序就可以添加資源,簡單地用批處理寫編譯資源腳本build.bat:
brcc32 my.rc
運行build.bat,在my.rc的當前目錄下會生成一個名為my.res的文件。
找到delphi工程文件中的"{$R *.res}",我們添加一行{$R my.res},這樣我們的資源文件就添加到我們的主程序。
然後我們需要解壓資源,簡單地寫一下過程,代碼如下:
procedure ExtractRes(ResName,ResType,szFileName:string);
var
resStream:TResourceStream;
begin
//*.rc資源文件
//Wave,RCDATA,AVI,ICON,BITMAP,CURSOR
try
resStream := TResourceStream.Create(HInstance,ResName,PChar(ResType));
resStream.SaveToFile(szFileName);
finally
resStream.Free;
end;
end;
接著調用ExtractRes('viewpic','bin','c:\viewpic.exe');我們就可以發現c:\viewpic.exe文件已經生成,是不是很簡單。