【发布时间】:2014-02-26 17:07:25
【问题描述】:
我正在考虑将 Google protocol buffers 作为我使用命名管道在 C++ 和 C# 之间进行通信的问题的解决方案。但我有一个担忧:我在 protobuf 上所能找到的只是如何使用 protobuf 编译器从原型创建消息。这很简洁,但我还需要能够序列化现有结构。我似乎找不到任何信息(但也许我忽略了它)。你知道是否可以使用 protobufs 在 C++ 中序列化一个结构,以便可以在 .NET 中读取它,而无需修改所述现有结构?
【问题讨论】:
-
不,这不可能,您必须映射数据。
-
这太糟糕了。你能推荐任何替代系统吗?
-
@πάνταῥεῖ 没有什么是不可能的。不在 C++ 中。 Protobuf 具有非常简单的编码格式,并且易于处理。编写代码以序列化为该格式非常容易,但它反转了很难的经典 protobuf 工作流程(正常工作流程:编写 .proto 消息,为其生成 C++ 结构;反向工作流程:编写具有序列化的 C++ 结构例程,生成 .proto 消息/原型)。但同样,并非不可能。
标签: c++ protocol-buffers