你的问题是捆绑软件怎么读取还是问怎么捆绑?
先说怎么捆绑吧,如果你要写自解的软件(比如 winzip 的自解压),则比较典型的思路是。。。打比方吧,现在写好并编译完成的执行文件为 link.exe,可带的命令行参数不限,比如输入 link file1 file2 file3 此时 link 创建新文件 linked.exe,并把自身复制过去,然后再依次读入 file1,file2,file3,并依次复制,每新复制一个文件后在文件列表增加记录,等全部写完后再把文件列表记录写上,再写上文件列表记录长度,最后写上文件结束 EOF.
这样就差不多了,图示。。。
linked 文件结构依次为 | link.exe | file1 | file2 | file3 | 文件列表 | 文件列表长度 |
解绑时。。。文件指针移到未尾,读取最后一个字节,取得文件列表长度 N 然后指针移到 [文件未尾 - N - 1] 处开始读取文件列表至 [文件未尾 -1] 再依记录依次计算文件指针偏移,读出文件并创建新文件。
嗯。。。语法写得不够流畅,只能说能看懂。。。还有,我说的没有加上长度溢出等判断,不过思路写得差不多了。。。如果还没懂就跟帖。。
[此贴被 邪安(xiean) 在 6月6日22时0分 编辑过]
|