Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 动态创建新的protobuf消息_C++_Dynamic_Protocol Buffers - Fatal编程技术网

C++ 动态创建新的protobuf消息

C++ 动态创建新的protobuf消息,c++,dynamic,protocol-buffers,C++,Dynamic,Protocol Buffers,假设我有一条消息a,我想动态创建一条新消息B,它应该包含a中的所有字段和一个以上的字段(不包含在a中),如何在protobuf中执行此操作?首先,检查中定义的类型。这些“描述符”描述Protobuf类型。您可以通过创建FileDescriptorProto(基本上是.proto文件的AST;请参阅)然后使用DescriptorPool将其“编译”为FileDescriptor,动态创建一个。对于文件中定义的每种类型,它将依次包含一个描述符 一旦动态生成的类型具有描述符,就可以使用动态构造该类型的

假设我有一条消息a,我想动态创建一条新消息B,它应该包含a中的所有字段和一个以上的字段(不包含在a中),如何在protobuf中执行此操作?

首先,检查中定义的类型。这些“描述符”描述Protobuf类型。您可以通过创建
FileDescriptorProto
(基本上是
.proto
文件的AST;请参阅)然后使用
DescriptorPool
将其“编译”为
FileDescriptor
,动态创建一个。对于文件中定义的每种类型,它将依次包含一个
描述符


一旦动态生成的类型具有
描述符
,就可以使用动态构造该类型的消息对象。您可以使用该界面动态访问此邮件的字段。

查看邮件扩展。protobuf中没有继承机制。