我编写了一个C ++类,用于比较两个Google Protocol Buffer消息。它接受两个GPB对象,并返回两个GPB消息是否完全相同。此类还具有另一个API,该API甚至返回在两条消息之间进行了修改的属性。 C ++ API(仅返回true / false的简单情况)如下所示。它将Google Protobuf基类“ Message”对象作为输入。因此,只要firstMsg和secondMsg是同一类型,就可以调用此API来比较任何类型的protobuf消息。即可以用来比较学生类型的消息或教师类型的消息。
bool get_diff(google::protobuf::Message* firstMsg,
google::protobuf::Message* secondMsg)
这对我来说可以在C ++代码中使用。但是,现在有一个新的用例,需要从C代码调用此API。我的C代码还具有由protoc-c编译器生成的protobuf消息。我很难从protobuf-c消息生成google :: protobuf :: Message来调用此API。
关于前进的任何建议?