ProtoBuf 在Windows VS2019 C++平台上的使用

这两天想着了解一下protobuf,搜索了一篇博客照着弄了一下

https://blog.csdn.net/weixin_44780793/article/details/120572110

有个问题是,我对着弄后定义的.proto文件生成的时候报错了

一开始我以为是文件里有中文注释要弄成ANSI格式,发现还是不行

怎么改都不行,后边发现是用了中文状态下的;

改回去英文的;就通过了...

=============分割线===============

自己弄了个.proto,想着试试是否支持map和vector,发现map和c++的map写法一样,要用vector(数组)得用repeated +类型,这个测试文件如下

syntax = "proto3";

message ItemData {
int32 ItemID = 1;
map<int32,string> pos = 2;
int32 ItemNum = 3;
repeated int64 arr = 4;
}

测试代码:

    ItemData item;
item.set_itemid(100);
item.set_itemnum(25); // 设置map
item.clear_pos();
auto pos = item.mutable_pos();
pos->insert({ 1,"first" }); // 设置数组
item.clear_arr();
item.add_arr(666);
item.add_arr(888); std::string str;
str = item.SerializeAsString();
std::cout << "str:" << str << std::endl;
std::cout << "反序列化:" << std::endl; ItemData item1;
item1.ParseFromString(str);
std::cout<<"Id:"<<item1.itemid();
std::cout << " num:" << item1.itemnum() << std::endl;; // 解析map
for (auto it : item1.pos())
{
std::cout << " key:" << it.first << " value:" << it.second << std::endl;
}
// 解析数组
for (auto it : item.arr())
{
std::cout << "v:" << it;
}

ps:发现map不是直接用的std的map,操作接口有些不一样

结果正常:

关于protobuf的简单探讨先到此为止了

最新文章

  1. iOS网络4——Reachability检测网络状态
  2. D3.js学习(一)
  3. CentOS 7安装Sublime text3
  4. Failed to connect to JobMonApp on port 13491
  5. java中用线程解决进出水问题
  6. ITPub 上的一道题,学习下思路
  7. c++智能指针《一》 auto_ptr
  8. jsp定时方法
  9. ajax请求响应中用window.open打开新窗口会被浏览器拦截的解决方式
  10. Android逆向基础----APK文件结构
  11. M. Subsequence 南昌邀请赛
  12. redis3.0.3集群搭建
  13. linux c使用socket进行http 通信,并接收任意大小的http响应(五)
  14. POJ2480 Longge&#39;s problem
  15. C++的MFC 与 HTML 双向通讯
  16. 函数作用域和块级作用域--你不知道的JavaScript
  17. codevs 1160
  18. Install NDK in Eclipse/Android Studio
  19. Linux下部署配置Nginx
  20. Windows8系统下设置Mongodb开机启动

热门文章

  1. Echarts 设置Y轴 || X轴的刻度只显示整数
  2. 【易语言】exui超级列表框使用方法
  3. PLC数据块中的偏移量
  4. CentOS7安裝 Nginx + php7 + php-fpm
  5. byte最高位
  6. Python学习的第三次的总结
  7. 解决 VSCode git commit 时 No such file or directory 报错问题
  8. gopher必读文章
  9. windows安装和重装系统后无法识别U盘
  10. (0319) SV 中的 iff 事件控制