纯资源dll文件的制作和调用(100分)

  • 主题发起人 主题发起人 microsal
  • 开始时间 开始时间
M

microsal

Unregistered / Unconfirmed
GUEST, unregistred user!
我想制作一个纯资源的dll文件,其中包括图标、bmp图像和jpg图像、wav和midi音乐、字符串、文本文件等,不知道在delphi下怎么做这个dll文件,另外,我又应该怎样在程序中来调用它们,我在资源文件res下能完全实现,希望各位高手能帮帮忙,教我一下,急盼。
 
楼主在资源文件res下能完全实现 剩下的就更加简单啊<br>做一个dll 加入你的资源文件 &nbsp;然后把取图片 音乐的方法 当作导出方法<br>给其他程序调用不就成了??
 
示例<br>1:编辑一个resource.rc文件,里面类似如下:<br> &nbsp;hookdll RC_WAV WAV文件.WAV<br>2:然后用Brcc32.exe编译:<br> &nbsp;brcc32 resource.rc<br> 结果生成resource.res文件<br>3:修DLL的任意Pas文件或者Dpr文件,添加下面的代码:<br> &nbsp;{$R resource.res}<br>4:使用时的代码:<br> <br> &nbsp;var<br> &nbsp; hDLL:THandle;<br> &nbsp; res:tresourcestream;<br> &nbsp; ....<br> &nbsp; hDLL := LoadLibirary('xxx.dll');<br> &nbsp; res:=tresourcestream.create(hDLL ,'hookdll','RC_WAV');<br> &nbsp; //WAV文件就在你的流文件里面了<br> &nbsp; res.Free;<br> &nbsp; <br> &nbsp; //---------------------------<br> &nbsp; 当然你也可以不使用流,而使用API。<br> &nbsp; FindResource,LoadResource等
 
感谢wr960204的指导,我试着写代码,已经能实现了,但有一个新问题出现了,我做纯资源dll文件的目的是为了减小应用程序执行文件*.exe的大小,但使用了dll文件后发现,*.exe文件的大小并没有减小,用resxplor.exe查看*.exe文件,发现它把dll文件中的资源也加了进去,不知为什么。按道理*.exe文件在执行过程中调用dll文件中的资源,执行完毕后应该卸调资源才对啊,急盼指导。
 
资源打包进DLL后,静态调用当然随着EXE文件的启动而加进内存,使用动态调用就OK了!
 
多人接受答案了。
 
后退
顶部