C ++将外部.exe嵌入到我编译的.exe中

时间:2013-05-29 19:40:23

标签: c++ embed exe executable

我有一个关于一个主题的快速提问,我很不高兴。我有一个程序,它发送命令到另一个.exe在我称为“工具”的文件夹中。我以这种格式发送:

system("tools\\program.exe -r -w file.dat file_new.dat");

但是,当我将程序构建到.exe中时,一切都很有效,显然需要将其他可执行文件放在第二个文件夹中。有没有办法将外部.exe包含在我的项目中,所以最终产品只有一个.exe?

我正在使用Visual Studio 2008(lol)并运行Windows 7 64位。

谢谢:)

2 个答案:

答案 0 :(得分:5)

通常,安装程序将处理外部依赖项的管理。 NSIS是我最喜欢的Windows平台解决方案。

备选方案:将二进制文件转换为base64编码,并将其作为头文件嵌入项目中。运行应用程序时,将exe的base64表示形式转换为二进制序列,然后将该字节序列输出到临时目录中的文件(如C:\ windows \ temp或%AppData%\ Local \ Temp)。然后运行exe。完成后,删除exe。

答案 1 :(得分:1)

您可以将文件添加到资源。在执行命令之前,您可以检查第二个可执行文件是否存在。如果它不存在,您必须从资源中提取数据并存储到文件...

This thread正在处理从资源中读取HTML。它与二进制文件非常相似。