如何将一个数据文件与一个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 "请问如何写实现释放文件功能的代码"
此问题由李海回答。
| |
|
|
| |
|
|