我正在使用C++ msgpack实现。关于如何打包二进制数据,我遇到了一个障碍。在二进制数据中的术语具有以下类型的缓冲器:msgpack C++实现:如何打包二进制数据?
unsigned char* data;
的数据变量指向的数组,其实际上是一个图像。我想要做的就是使用msgpack打包。似乎没有如何实际打包二进制数据的例子。支持format specification原始字节,但我不确定如何使用该功能。
我试图用字符指针的向量类似如下:
msgpack::sbuffer temp_sbuffer;
std::vector<char*> vec;
msgpack::pack(temp_sbuffer, vec);
但是由于没有用于T =的std ::向量没有函数模板这将导致一个编译器错误。
我也简单地尝试了以下内容:
msgpack::pack(temp_sbuffer, "Hello");
但是,这也导致了一个编译错误(即,对于T =常量字符[6]
因此没有功能模板,我希望有人可以告诉我如何使用msgpack C++来打包二进制数据,如char array
感谢约什。我以为我已经尝试过了。不幸的是,用这个解决方案,我必须将大量的二进制数据(图像)从字节数组复制到无符号字符的向量中。另外,我不完全确定你为什么编译。因为我没有看到任何特别支持unsigned char的函数。我将深入研究源代码,看看是否有更高效的方式来完成这项工作(即避免复制)。 – mdb841 2012-07-30 13:19:10
此外,这将它保存为一个字符数组,而不是二进制数据,根据实现它是一个不同的类型... – 2015-06-03 13:03:29
只是查了一下:使用矢量而不是矢量似乎使用二进制类型,而不是数组... –
2015-06-03 13:37:43