pbc无法解析C++ protobuf序列化后的字符串


C++:


 tutorial::Person person;

      person.set_name("Alice");
      person.set_id(123)
     std::string stringbuffer =person:SerializeAsString();

字符传给lua
Lua:

local file = "person.pb";
    protobuf.register_file(file)

result = protobuf.decode("tutorial.Person", stringbuffer) 

result一直是false



有遇到的不?

已经解决了。
是由于C++序列化后的字符串中有\0这个字符,lua获取长度不正常,所以无法decode。
可以修改basic.lua 做替换

要先注册协议文件的内容,才能进行解析啊

已经注册了


local file = "person.pb";
    protobuf.register_file(file)

关注 ~~

查一下注册是否成功了。另外,为什么要在C里面读字串呢?直接在Lua里面读取不就好了吗?

有部分数据存在C端 要取出来给Lua共享 项目比较老

楼主,用替换,这不会出问题吗?

找到问题了 c++字符\n截断的问题

楼主是如何解决的,能说的具体点吗?

注意c++里面会截断传递给lua的字符

话说PBC能解析多层嵌套的PB文件吗?