博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一起来看看protobuf中容易引起bug的一个细节
阅读量:4139 次
发布时间:2019-05-25

本文共 1393 字,大约阅读时间需要 4 分钟。

        我们已经介绍过protobuf的使用了, 故不再赘述, 下面我们来看看如下代码的一个小bug:

        test.proto内容为:

package NS;  message PointReq {      required int32 x=1;      required int32 y=2;  }
       main.cpp为:

#include 
#include
using namespace std;#include "test.pb.h"using namespace NS;int main(){ PointReq point; point.set_x(1); point.set_y(0); string tmp; bool ret = point.SerializeToString(&tmp); // 这里要传地址 if (ret) { printf("encode ok!\n"); } else { printf("encode error!\n"); return -1; } // 为了便于网络传输, 这里需要转化成指针式buffer const char *p = tmp.c_str(); string s = p; PointReq point2; ret = point2.ParseFromString(s); if (ret) { printf("decode ok, %d, %d\n", point2.x(), point2.y()); } else { printf("decode error!\n"); return -2; } return 0;}

        结果为:

taoge@localhost Desktop> make cleanrm -fr *.o main    taoge@localhost Desktop> make g++   -c  -L/usr/local/lib   -lprotobuf   -o main.o main.cpp  g++   -c  -L/usr/local/lib   -lprotobuf   -o test.pb.o test.pb.cc g++: -lprotobuf: linker input file unused because linking not doneg++: -lprotobuf: linker input file unused because linking not doneg++    -L/usr/local/lib   -lprotobuf   -o main main.o test.pb.o  taoge@localhost Desktop> ./main encode ok!decode error!taoge@localhost Desktop>
       为什么是失败呢?  请自己思考一下, 如果没有结果, 可以参考我之前的博文:http://blog.csdn.net/stpeace/article/details/53046829

       

你可能感兴趣的文章
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
IPS开发手记【一】
查看>>
Java通用字符处理类
查看>>
文件上传时生成“日期+随机数”式文件名前缀的Java代码
查看>>
Java代码检查工具Checkstyle常见输出结果
查看>>
北京十大情人分手圣地
查看>>
Android自动关机代码
查看>>
Android中启动其他Activity并返回结果
查看>>
2009年33所高校被暂停或被限制招生
查看>>
GlassFish 部署及应用入门
查看>>
iWatch报错: Authorization request cancled
查看>>
iWatch报错: Authorizationsession time out
查看>>