摘自我自己过去写的一段心得。
1.编辑资源文件 *.RC Wave: 资源文件是声音文件; RCDATA: 二进制数据 AVI: AVI动画; ICON: 图标文件; BITMAP: 位图文件; CURSOR: 光标文件; 比如: MyWav WAVE "FileName.Wav"
2.使用Brcc32转化为*.RES文件
3.在工程中引用RES文件 比如:{$R MyRes.RES}
4.运行时读入 通过TResourceStream ,比如TResourceStream.Create(HInstance, ResName, RT_RCDATA); API:LoadBitmap,LoadIcon等 组件:Image1.Picture.Bitmap.LoadFromResourceName ///////////////////////////////////////////////////////// 把EXE可执行文件等作为资源包含在Delphi编译文件中2010/01/18 8:29 P.M.感觉还是挺有用的,转载保存了~~~
建立文本文件 TEST.RC 撰写下面的一行 AEXE EXEFILE c:\test.exe 存盘 copy test.rc 到你DELPHI目录里的 bin 目录 执行 brcc32 test.rc 得到 test.res copy test.res 到你的工程目录 记得在工程文件里加上 {$R test.res} 提取RES中的TEST.EXE的函数 procedure extractexeres(restype, resname, resnewname:string); var res:tresourcestream; begin res:=tresourcestream.create(hinstance,resname,pchar(resyype)); res.savetofile(resnewname); res.free; end;
建立文本文件 myjpg.RC 撰写下面的一行 Hash JPGFILE c:\myjpg.jpg 存盘 copy myjpg.rc 到你DELPHI目录里的 bin 目录 执行 brcc32 myjpg.rc 得到 myjpg.res copy myjpg.res 到你的工程目录 记得在工程文件里加上 {$R myjpg.res} 提取RES中的MYJPG.jpg的函数 procedure extractexeres(resname, restype, resnewname:string); var res:Tresourcestream; begin res:=Tresourcestream.create(hinstance,resname,pchar(restype)); res.savetofile(resnewname); res.free; end; //这样你就可以调用resnewname这个 jpg文件了。 调用的时候如下: Extractexeres('Hash','JPGFILE','f:\myjpg.jpg');
换一种说法:
1、生成一个rc文件,文件格式如下: rwww exefile "test.exe" //rwww是资源名称 //exefile是资源类型 //text.exe是资源 资源类型列表: Wave: 资源文件是声音文件; RCDATA: 一般二进制文件; AVI: AVI动画; ICON: 图标文件; BITMAP: 位图文件; CURSOR: 光标文件; exefile: exe文件 FILE: 一般文件
2、将delphi安装目录下bin中的brcc32.exe文件拷出,用brcc32.exe执行 生成的rc文件,在dos窗口下 运行:brcc32 test.rc 生成正式的 后缀为.res的次源文件
3、在delphi中加入编译指令{$R test.res}用以编译。但注意,以上的test.exe文件 一定要在当前路径下存在。
4、调用:
var t : TResourceStream; begin try t := TResourceStream.Create(HInstance,'rwww','exefile'); //其中HInstance为一个句柄常量;rwww为资源名;exefile为资源类型 t.SaveToFile('c:\2.exe'); //保存文件成2.exe finally
t.free; end; end; /////////////////////////////////////////////////////////// 编辑一个 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
http://www.cnblogs.com/hssbsw/archive/2012/03/15/2397825.html
|
请发表评论