如何在cpp中使用协议缓冲区存储大缓冲区/数组(char / int)?

时间:2018-10-31 06:44:27

标签: c++ protocol-buffers protoc google-protocol-buffer

有没有办法在cpp中使用Google协议缓冲区存储数组,而无需重复使用。我需要存储和发送包含图像数据的缓冲区(大小为640x480x2)。还有如何使用协议缓冲区存储uint16_t数组数据。

1 个答案:

答案 0 :(得分:0)

  • 在protobuf repeated = array中。我不明白您为什么不能使用repeated uint32 img = field_num
  • 如果您真的想存储到字节数组中,可以尝试pb.set_mybytearray( std::string( data, data_length ) );

  • Protobuf不支持uint16https://developers.google.com/protocol-buffers/docs/reference/proto3-spec#fields。我建议使用uint32类型。假设protobuf将值编码为varint,则该消息将不包含2个字节的零。