You need to make sure the message at least has a name (DescriptorProto::set_name()). You should see logging output indicating why BuildFile failed.
On Thu, Aug 16, 2012 at 5:47 AM, Dusan <[email protected]> wrote: > Hi, could you please anybody post some snippet that creates dynamic > message without compiling in C++? I need to create message on runtime and > can not find a way. As far as I read here on forums, it looks like I should > use FileDescriptorProto, but following does not work: > > namespace GPB = google::protobuf; > > int _tmain(int argc, _TCHAR* argv[]) > { > GPB::FileDescriptorProto FDProto; > FDProto.set_package("TestPackage"); > FDProto.set_name("TestName"); > GPB::DescriptorProto* msgDP = FDProto.add_message_type(); > GPB::FieldDescriptorProto* fld = msgDP->add_field(); > fld->set_name("Text"); > fld->set_type(GPB::FieldDescriptorProto_Type_TYPE_STRING); > > string proto =FDProto.DebugString(); > > GPB::DescriptorPool DscrPool; > const GPB::FileDescriptor * FD = DscrPool.BuildFile(FDProto); // FD is > NULL!!! > } > > Thanks, Dusan > > -- > You received this message because you are subscribed to the Google Groups > "Protocol Buffers" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/protobuf/-/_KszGUZQoJAJ. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/protobuf?hl=en. > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.
