有这样三个文件
1.exe
2.dll
3.dat
其实2,3都是原先系统里的文件
1.exe是自己写的一个程序
我想将2,3二个文件,包含到1.exe中,在运行1.exe时,释放出2.dll,3.dat文件到指定目录
关掉程序时,将2.dll,3.dat删除
请问,如何包含,如果释放。
谢谢

解决方案 »

  1.   

    使用资源文件可实现你的要求,
    具体做法可以分成以下四个步骤:
    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(文件名)