C++ 在VC+;中包含和访问二进制数据最干净的方法是什么+;快车?
我有一些二进制文件,我想嵌入到我用VC++Express Edition编译的dll中 我有几种方法可以做到这一点(比如将数据转换为与代码一起编译的数组),但我并不满意,我觉得我可能缺少了一个简单、直接的解决方案C++ 在VC+;中包含和访问二进制数据最干净的方法是什么+;快车?,c++,c,dll,C++,C,Dll,我有一些二进制文件,我想嵌入到我用VC++Express Edition编译的dll中 我有几种方法可以做到这一点(比如将数据转换为与代码一起编译的数组),但我并不满意,我觉得我可能缺少了一个简单、直接的解决方案 最干净、最简单的方法是什么?我不知道这是否是一个选项,但Unix(在Windows上可能很容易获得)程序xxd有一个输出C头的选项: xxd -i file.bin > file.h file.h将包含包含数据的unsigned char数组的定义,以及告诉您数组长度的unsi
最干净、最简单的方法是什么?我不知道这是否是一个选项,但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;
变量的名称取决于输入文件。希望这能有所帮助。上次我不得不这么做时(不久前),我使用了二进制资源。下面是一个描述该方法的示例。不过,我不确定是否有比这更新的版本做得更好。Heh。谷歌桌面搜索了我的硬盘,我已经有xxd了!和维姆一起来的。谢谢Vinay Sajip给出的参考资料答案更接近我的要求,但使用xxd非常简单,我决定放弃我编写的自定义代码,改用它。如果我的文件更大,我可能会选择二进制资源。