嵌入外部.exe到我编译的.exe

C++ Embed external .exe into my compiled .exe

本文关键字:exe 编译 外部      更新时间:2023-10-16

我有一个关于我是个新手的话题的快速问题。我有一个程序,我把一个命令发送到另一个文件夹。exe我叫"工具"。我用这种格式发送:

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

一切都很好,然而,当我把我的程序构建成。exe时,它会要求另一个可执行文件放在第二个文件夹中,很明显。有没有办法包括外部。exe到我的项目,所以最终产品只是一个。exe?

我使用的是Visual Studio 2008 (lol),运行的是windows 7 64bit。

谢谢:)

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

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

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

这个线程正在处理从资源读取html。它与二进制文件非常相似。