我有一个关于一个主题的快速提问,我很不高兴。我有一个程序,它发送命令到另一个.exe在我称为“工具”的文件夹中。我以这种格式发送:
system("tools\\program.exe -r -w file.dat file_new.dat");
但是,当我将程序构建到.exe中时,一切都很有效,显然需要将其他可执行文件放在第二个文件夹中。有没有办法将外部.exe包含在我的项目中,所以最终产品只有一个.exe?
我正在使用Visual Studio 2008(lol)并运行Windows 7 64位。
谢谢:)
答案 0 :(得分:5)
通常,安装程序将处理外部依赖项的管理。 NSIS是我最喜欢的Windows平台解决方案。
备选方案:将二进制文件转换为base64编码,并将其作为头文件嵌入项目中。运行应用程序时,将exe的base64表示形式转换为二进制序列,然后将该字节序列输出到临时目录中的文件(如C:\ windows \ temp或%AppData%\ Local \ Temp)。然后运行exe。完成后,删除exe。
答案 1 :(得分:1)
您可以将文件添加到资源。在执行命令之前,您可以检查第二个可执行文件是否存在。如果它不存在,您必须从资源中提取数据并存储到文件...
This thread正在处理从资源中读取HTML。它与二进制文件非常相似。