首页  编辑  

任意的文件作为资源添加到可执行文件

Tags: /超级猛料/Resource.资源和使用/   Date Created:
1:编辑一个resource.rc文件,里面类似如下:
 hookdll RC_Dll YourHookDllFileName.Dll
2:然后用Brcc32.exe编译:
 brcc32 resource.rc
结果生成resource.res文件
3:修改窗体Pas或者Dpr文件,添加下面的代码:
 {$R *.res}
 {$R resource.res}
4:关键的代码:
 在窗体初始化或者工程的开头部分添加代码:
 var
  res:tresourcestream;
  ....
  res:=tresourcestream.create(instance,'hookdll','RC_Dll');
  res.SaveToFile('YourHookDllFileName.Dll');
  res.Free;
5:你的程序退出的时候:
  DeleteFile('YourHookDllFile.Dll');
6:End
----------------------------------------
自己做一个一个资源文件的描述文本RC文件,例如 sample.rc ,"记事本"程序创建就行了。然后可以输入一些我们要定义的资源,
例如:
MEN BITMAP c:\bitmap\men.bitmap
ARJ EXEFILE c:\arj.exe
MOV AVI c:\mov.avi
然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。
在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。
{$R sample.res}
这样我们就可以在这个单一的执行文件中调用资源了。举例如下:
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是一个TAnimate类}
Avi1.ResName:='AVI';
Avi1.Active:=True;
end;