首页 > 解决方案 > 如何读取 google::protobuf::io::CodedOutputStream::WriteVarint32ToArray 写入的数据

问题描述

我正在使用此方法google::protobuf::io::CodedOutputStream将可变长度编码的整数写入缓冲区:

static uint8 * WriteVarint32ToArray(uint32 value, uint8 * target)

读取相同值的相应方法是什么?

我在文档中看到了这些:

static const uint8 * ReadLittleEndian32FromArray(const uint8 * buffer, uint32 * value)
static const uint8 * ReadLittleEndian64FromArray(const uint8 * buffer, uint64 * value)

但似乎没有一个能满足我的需要。我期待一个ReadVarint32FromArray,但这似乎不可用。由于我读取的是内存缓冲区而不是流,因此我需要一种静态方法,例如用于写入的方法。

文档:https ://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream

标签: c++protocol-buffers

解决方案


CodedInputStream::ReadVarint32. 没有static版本,您需要实际实例化一个CodedInputStream由您的数组支持的;有一个构造函数采用指针和大小。


推荐阅读