我需要将我的一个 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/