有时候程序引用了多个资源文件,但是希望交付给用户的是单个可执行文件,那么就需要把资源文件打包到可执行文件中,一个简单的做法是这样的。
使用 xxd 工具将二进制文件转换成 unsigned char 数组
xxd 是一个 linux 系统上的命令行工具,可以把二进制文件转换成c语言里的 unsigned char 数组,用法是这样的:xxd -i 输入文件
windows上默认没有这个工具,可以自行安装。
然后就可以把数组粘贴到源码中了,需要用到这些二进制数据时,可以用fopen函数以二进制形式将数组写入到文件系统中。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
unsigned char buf[] = {
0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x6f, 0x63, 0x6b, 0x65,
0x74, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x69, 0x6d,
0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65,
0x74, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x28, 0x35, 0x29, 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61,
0x6c, 0x20, 0x74, 0x2c, 0x20,