Я испытываю следующие трудности.У меня есть pObj, я сериализую его, используя SerializeToString, затем в качестве теста я пытаюсь десериализовать строку, используя ParseFromString.Я ожидаю, что после десериализации объект будет содержать те же данные, что и оригинальный pObj.Так не бываетНовый объект содержит нули.ParseFromString возвращает true.Вот псевдокод:
Я пытался использовать ParsePartialFromString - он не работал
string body;
int n1 = pObj->_objectSetType.ByteSizeLong();
result = pObj->_objectSetType.SerializeToString(&body);
PriceTicObjectSet* pnewObj = new PriceTicObjectSet;
result = pnewObj->_objectSetType.ParseFromString(body);
if ( !IsEqual(pObj, pnewObj) printf ("Error !!!!\n");
Некоторые пояснения.PriceTicObjectSet - это тонкая оболочка для класса protobuf.Оригинальный pObj заполнен некоторыми данными.Затем я сериализую объект с помощью SerializeToString в строку.Затем для проверки работоспособности создайте еще один экземпляр PriceTicObjectSet и десериализуйте строку из предыдущего шага в новый объект.Я ожидаю, что содержимое bothe pObj и pnewObj будет идентичным.Но это не так.Оказывается, pnewObj вообще не инициализируется.Обе функции SerializeToString и ParseFromString возвращают true.