Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在VC+;中包含和访问二进制数据最干净的方法是什么+;快车?_C++_C_Dll - Fatal编程技术网

C++ 在VC+;中包含和访问二进制数据最干净的方法是什么+;快车?

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

我有一些二进制文件,我想嵌入到我用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;

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

上次我不得不这么做时(不久前),我使用了二进制资源。下面是一个描述该方法的示例。不过,我不确定是否有比这更新的版本做得更好。

Heh。谷歌桌面搜索了我的硬盘,我已经有xxd了!和维姆一起来的。谢谢Vinay Sajip给出的参考资料答案更接近我的要求,但使用xxd非常简单,我决定放弃我编写的自定义代码,改用它。如果我的文件更大,我可能会选择二进制资源。