请问大家,高分请教,分不够再加

chatop 2006-06-04 02:11:36
有这样三个文件
1.exe
2.dll
3.dat
其实2,3都是原先系统里的文件
1.exe是自己写的一个程序
我想将2,3二个文件,包含到1.exe中,在运行1.exe时,释放出2.dll,3.dat文件到指定目录
关掉程序时,将2.dll,3.dat删除
请问,如何包含,如果释放。
谢谢
...全文
88 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chatop 2006-06-04
  • 打赏
  • 举报
回复
完全正确,谢谢
wooden954 2006-06-04
  • 打赏
  • 举报
回复
使用资源文件可实现你的要求,
具体做法可以分成以下四个步骤:
1.将文件2.dll及3.dat编译成资源文件
用记事本或其它文本编辑器编写一个扩展名为Rc的文件,
这里可以叫做AllData.rc。
文件内容如下:
mydll DLL 2.dll
mydat DAT 3.dat
本文件格式分别为在资源文件中的名称,类型-,实际文件名.
将脚本文件和实际文件拷到Brcc32.EXE(Delphi的资源编译器)所在目录,
执行DOS命令。格式为:Brcc32 脚本文件(回车)
在这里就是Brcc32 AllData.rc
如果编译成功,则会生成一个结尾为res的文件,
这个文件就是我们需要的资源文件。
将此文件(AllData.Res)拷贝到你的1.Exe所在工程的目录下
2.在程序中引用此资源文件
在程序代码中找到
implementation语句,在其后添加一行
{$R AllData.RES}
这样在编译时就会自动将AllData.Res添加到可执行文件中去

3.在程序运行时释放此资源文件
var
DllFile:TResourceStream;
DATFile:TResourceStream;
begin
DllFile:=Tresourcestream.create(hinstance,'mydll','DLL');
DllFile.SaveToFile('c:\2.dll');
DllFile.Free;
DATFile:=Tresourcestream.create(hinstance,'mydat','DAT');
DATFile.SaveToFile('c:\3.dat');
DATFile.Free;
end;

4.在程序运行结束时删除此资源文件
如果在结束前你还在使用Dll文件,则需要先释放此文件,然后再用删除文件函数删除即可
删除文件函数为DeleteFile(文件名)

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧