热情软件屋

 

如何将一个数据文件与一个EXE文件结合在一起


编号:QA001318
建立日期: 1999年7月10日 最后修改日期:2001年12月11日
所属类别:

XYJ:
    C++builder
    pwin98
    我正在学习C++builder.请问,如何将一个数据文件与一个EXE文件结合在一起(即这个文件的头部实际是一个EXE文件),使文件的可执行部分调用自身的数据部分,看上去是一个独立的EXE文件。(类似于lotus screencam)盼您们能解我心头之惑,谢谢。
    

回答:

    你可以先编译.EXE文件,然后使用
    Copy/b your.exe + yourfile.ext exedat.exe
    命令将your.exe和yourfile.ext组合在exedat.exe中。你可以记下your.exe的文件大小,然后在exedat.exe运行时打开其自身(只能读,不能写),根据your.exe的文件大小,移动文件指针到EXE部分的末尾。然后将可以读你自己的文件了。当然,如果你的数据部分有一个特别的文件头,你也可以打开自身EXE之后寻找这个文件头,这样你就不用每次编译之后都记录下your.exe文件的大小了。
    你可以在http://www.marms.com/ziptv/fr/addons/找到ZipSFX的Delphi例子。这个例子演示了如何设计ZIP自释放的EXE文件,你可以参考它来理解以上工作原理。
    
    ShyWJB的意见:
    如果只是单纯取得这个数据文件内容,而不想将其做为一个独立的文件,将该数据文件引入为资源会方便一些。(主持人注:参考QA003222 "请问如何写实现释放文件功能的代码"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio