使用C/C++从库中解压缩可执行文件

Mar*_*arc 2 c c++ filesystems cross-platform iterable-unpacking

我正在开发一个在业务过程中使用一个或多个帮助程序可执行文件的库.我当前的实现要求用户在已知位置的系统上安装帮助程序可执行文件.要使库正常运行,帮助应用程序必须位于正确的位置并且是正确的版本.

我想删除以上述方式配置系统的要求.

有没有办法捆绑库中的帮助程序可执行文件,以便它可以在运行时解压缩,安装在临时目录中,并在一次运行期间使用?在运行结束时,可以删除临时可执行文件.

我已经考虑过自动生成一个包含unsigned char数组的文件,该数组包含可执行文件的文本.这将在编译时完成,作为构建过程的一部分.在运行时,此字符串将写入文件,从而创建可执行文件.

如果不将可执行文件写入磁盘(可能是某种RAM磁盘),是否可以执行此类任务?我可以设想某些病毒扫描程序和其他安全软件反对这种操作.还有其他问题我应该担心吗?

该库正在使用C/C++开发,以便在Windows和Linux上进行跨平台使用.

Sta*_*ked 6

"一个聪明的人解决了一个问题.一个聪明的人可以避免它." - 艾尔伯特爱因斯坦

本着这句话的精神,我建议您只需将此可执行文件与最终应用程序捆绑在一起.

只需2美分.