在VC ++ Express中包含和访问二进制数据的最简洁方法是什么?

时间:2009-09-06 21:32:56

标签: c++ c dll

我有一些二进制文件,我想将其嵌入到我用VC ++ Express Edition编译的DLL中。

我有几种方法可以做到这一点(比如将数据转换为我随代码编译的数组),但我不满意,我觉得我可能错过了一个简单,直接的解决方案。

最干净,最简单的方法是什么?

2 个答案:

答案 0 :(得分:15)

我不知道这是否是一个选项,但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;

变量的名称取决于输入文件。希望这会有所帮助。

答案 1 :(得分:2)

我最后一次这样做(前一段时间)我使用了二进制资源。这是一个描述方法的article。不过,我不确定是否有更新的东西可以做得更好。