摘自我自己过去写的一段心得。

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