我正在尝试解析作为字符数组收到的protobuf消息(在c ++中)。但是,我所读过的所有the references都介绍了如何将字节数组或字符串解析为protobuf类型(例如“ ParseFromString”),使用的是编译器未定义的方法。
例如,
Message* msg;
bool success = ParseFromString(dataString, msg); //error: "ParseFromString" not defined in this scope
MyProtoMsgType* proto = new MyProtoMsgType();
proto->CopyFrom(*msg);
我的消息类中唯一可用的方法是字段设置器和获取器以及其他几个方法(CopyFrom和MergeFrom)。因此,我无法读取以char数组形式接收的protobuf消息的内容!
我将非常感谢您的帮助,我一直在寻找答案,而且时间长达几个小时。
答案 0 :(得分:2)
我认为您的问题是您使用ParseFromString
作为未绑定方法。实际上,它是来自Message
或MessageLite
类的方法。
Message* msg = new Message();
bool success = msg->ParseFromString(dataString);
...
如果这不是您的问题,则您的代码中缺少某些内容。