c - 如何在 C 源代码中存储 C 可执行二进制文件?

标签 c

我需要将我的一个 C 程序的二进制代码添加到另一个 C 程序的二进制代码中。我该怎么做? 我需要在我的 c 源代码中添加二进制内容。并使用该 c 源将该二进制内容附加到现有的二进制文件中。

最佳答案

在类 Unix 系统(包括 Linux)上,您可以使用 xxd :

xxd -i 程序

这会生成一个头文件,其中文件内容为字符数组,并将其嵌入到您的程序中。

在 Windows 上,您可以将程序作为资源嵌入。在您的 .rc 中,使用 200 作为资源 ID:

200 RDCDATA“program.exe”

然后在你的程序中:

HANDLE resinfo = FindResource(instance, MAKEINTRESOURCE(200), RT_RCDATA);
HANDLE reshandle = LoadResource(instance, resinfo);
void *data = LockResource(reshandle);
DWORD datasz = SizeOfResource(instance, resinfo);

无论哪种情况,您都需要将文件写到某个位置才能运行它。不要忘记在 Unix 上设置可执行位。

关于c - 如何在 C 源代码中存储 C 可执行二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50128579/

相关文章:

c - 本地指针的奇怪行为

c++ - 帮助解决这个问题

c - GDB 在命中观察点后执行下一条指令

c - 如何在所有端口上绑定(bind)()?

C SPI 锁存脉冲发生得太快

c++ - 过多的线程数会在文件读取时产生更好的结果

c - 使用 system() 运行程序

c - C 中每第 n 列(K&R 1-22)折叠输入行

命令行参数,打印列和行

c++ - C 和 C++ 标准之间的关系是什么?