c ++ protobuf - где все методы в моих сгенерированных классах? - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь проанализировать сообщение protobuf (в c ++), которое я получаю как массив символов. Однако все ссылки , которые я читал о том, как анализировать байтовый массив или строку в тип 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). Поэтому я не могу прочитать содержимое сообщения protobuf, полученного в виде массива char!

Буду очень признателен за помощь, я часами искал ответы.

1 Ответ

2 голосов
/ 13 марта 2019

Я думаю, что ваша проблема в том, что вы используете ParseFromString как несвязанный метод.На самом деле это метод из Message или MessageLite классов.

Message* msg = new Message();
bool success = msg->ParseFromString(dataString);
...

Если это не ваша проблема, я что-то здесь упускаю из вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...