【发布时间】:2010-11-26 02:03:06
【问题描述】:
我有一些二进制文件想嵌入到我正在使用 VC++ Express Edition 编译的 dll 中。
我有几种方法可以做到这一点(比如将数据转换为与代码一起编译的数组),但我并不满意,我觉得我可能缺少一个简单、直接的解决方案。
最干净、最简单的方法是什么?
【问题讨论】:
我有一些二进制文件想嵌入到我正在使用 VC++ Express Edition 编译的 dll 中。
我有几种方法可以做到这一点(比如将数据转换为与代码一起编译的数组),但我并不满意,我觉得我可能缺少一个简单、直接的解决方案。
最干净、最简单的方法是什么?
【问题讨论】:
我不知道这是否是一个选项,但 Unix(可能很容易在 Windows 上可用)程序 xxd 有一个输出 C 标头的选项:
xxd -i file.bin > file.h
file.h 将包含包含数据的unsigned char 数组的定义和告诉您数组长度的unsigned int。当然,最好输出到file.c,然后写file.h为:
extern unsigned char file[];
extern unsigned int file_len;
变量的名称取决于输入文件。希望这会有所帮助。
【讨论】:
上一次我不得不这样做(不久前)我使用了二进制资源。这是描述该方法的article。不过,我不确定是否有更新的更好的方法。
【讨论】: