如何将多个可执行文件打包成一个文件?

时间:2015-07-12 15:54:46

标签: c++

我有多个可执行文件。我想用cpp编写一个程序,它将它们提取到一个特定的位置。就像解压缩zip存档一样,但我希望它是一个可执行文件,可以在任何干净的windows安装中工作。 (vista或更高版本)有没有办法做到这一点?

编辑:我知道如何制作一个自解压zip文件,我想学习如何自己编写。

1 个答案:

答案 0 :(得分:-1)

大多数归档程序都可以选择创建可执行文件。你不需要编写自己的程序。

修改 如果你真的想自己做所有这些,你应该使用windows resource files。 (使用它们在another question中有描述。)我看到了两种可能的方法。

  1. 将每个文件作为资源添加到您的程序中。程序应该记住每个文件的名称,并将它们逐个保存到目录中。
  2. 将所有文件打包成一个。 (您需要编写第二个程序来打包文件。)包的示例格式如下:

    | 4-bytes - length of 1st filename | 1st filename | 4-bytes size of 1st file | 1st file | 4-bytes - length of 2nd filename | ...

    以这种方式准备的包可以放入程序资源中。这是一种更难的方法,但它也更具弹性。您可以修改文件列表而无需更改程序中的任何内容。