DELPHI PROTOBUF免费的开源支持库fundamentals5

1、源码URL:

https://github.com/fundamentalslib/fundamentals5

2、编译ProtoCodeGen.exe
下载完上面的文件后,在子目录中找到 ProtocolBuffers\CodeGenApp\ProtoCodeGen.dpr  ----- 编译它

3、编译完毕后,得到ProtoCodeGen.exe一个。它就可以把   *.proto  文件,生成为PAS文件了。

4、在D盘下,我新建了一个Google文件夹,把刚刚生成的protocodegen.exe放了进去

在这个文件夹下,我用记事本新建了一个文件,里面的内容如下

message Person {
    required string name = 1;
    required int32 id = 2;
}

保存为   message.proto

同样,我在Google文件夹下用建立一个叫做 pas_out文件夹

具体编译的指令时这样的。

打开 CMD。(DOS命令行那个,在开始——》运行——》CMD——》回车)

敲入命令

这个时候,去D:\google\pas_out下去找,会发现生成了一个pbMessageMessages.pas文件。

大功告成!!!!!

5、如何使用

新建一个项目

把Fundamentals.ProtoBuf.4.0.01(加压文件夹中的) ProtocolBuffers和Utils目录下的文件拷贝到我们新建的项目下,添加到项目里。

恩,其实并不是都能用的上的。这个自己看生成的pbMessageMessages.pas其他它就需要3个引用

cUtils,
  cStrings,
  cProtoBufUtils;

加密或者解密(序列化或者反序列化的代码如下)

var p1,p2:TPersonRecord;
  len:Integer;
  Bt:TBytes;
begin
  p1.Name := edtName.Text;
  p1.Id := StrToInt(edtID.Text);
  SetLength(Bt,100);
  //加密
  //len := pbEncodeValuePersonRecord(Bt[0],100,p1);
  len := pbEncodeValuePersonRecord(Bt[0],100,p1);
  SetLength(Bt,len);
  mmo1.Lines.Add(IntToStr(len));
  //解密
  //PersonRecordInit(p2);
  len :=pbDecodeValuePersonRecord(Bt[0],len,p2);
  mmo1.Lines.Add(IntToStr(len));
  mmo1.Lines.Add(p2.Name);
end;

彻底大功告成!!!!!

DELPHI PROTOBUF免费的开源支持库fundamentals5的更多相关文章

  1. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  2. 免费的Android UI库及组件推荐

    短短数年时间Android平台就已经形成了一个庞大而活跃的开发者社区.许多社区开发的项目业已进入成熟阶段,甚至可以用于商业的软件生产中,且不用担心质量问题. 本文编译自androiduipattern ...

  3. C++100款开源界面库[转]

    (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...

  4. C++ 100款开源界面库 (10)

    (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...

  5. 仿迅雷播放器教程 -- C++ 100款开源界面库 (10)

      (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系 ...

  6. 【奔走相告】- Github送福利:用户可免费创建私有代码库啦

    最新消息 PingWest品玩1月8日讯,据TheNextWeb消息,据美国科技媒体The Next Web报道,被微软收购的代码平台GitHub最近调整政策,用户免费创建无限空间私有代码库(priv ...

  7. Linux下经常使用的C/C++开源Socket库

    1.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html 2.      ACE: h ...

  8. Linux下经常使用的C/C++开源Socket库【转】

    转自:https://www.cnblogs.com/gccbuaa/p/7015599.html 1.      Linux Socket Programming In C++ : http://t ...

  9. Pugixml一种快速解析XML文件的开源解析库

    Pugixml是一个轻量级的C++ XML开源解析库,DOM形式的解析器.接口和丰富的遍历和修改操作,快速的解析,此外支持XPath1.0实现数据查询,支持unicode编码: 使用Pugixml可通 ...

随机推荐

  1. NTP路由器配置

    14.1. 路由器日志显示时间戳 提问 在路由器 的日志和排错信息里面显示时间 回答 Router#configure terminal Enter configuration commands, o ...

  2. C++大数据处理

    转:http://blog.csdn.net/v_july_v/article/details/7382693 作者:July出处:结构之法算法之道blog 前言 一般而言,标题含有“秒杀”,“99% ...

  3. MVC – 14.ajax异步请求

    14.1.配置文件 14.2.AjaxHelper – 异步链接按钮 14.3.AjaxHelper – 异步表单 AjaxOptions常见属性: 14.4.AjaxOptions对象生成[对应]触 ...

  4. Oracle与MySQL连接配置

    MySQL: Driver: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/GBDSPT(数据库名称) Oracle: Driver:o ...

  5. DOM的查找与操作

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. 【LOJ】#2172. 「FJOI2016」所有公共子序列问题

    题解 听说是什么序列自动机? 我们考虑对于每个位置的串,下面拼接相同的字符时,拼接最近的一个,这样可以保证不重不漏 为了实现这个我们需要什么呢,我们需要一个链表,记录一下每个位置的下一个字符会转移到哪 ...

  7. Robot Framework + Selenium2Lib

    Robot Framework + Selenium2Lib 最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具 ...

  8. Deepin 2015 火狐 Firefox安装Flash

    1.sudo apt-get install flashplugin-nonfree 2.至Abobe官网下载最新的Linux版本flash安装包,选择.tar.gz类型,下载(https://get ...

  9. hihocoder 1500 EL SUENO

    树上背包. 简单的树形$dp$,计算出摧毁每一个节点所需的最小费用,背包即可. #include<bits/stdc++.h> using namespace std; struct X ...

  10. springMVC接受对象集合,name数组

    这两天开发遇到一个很常见的问题,即使自己一直没遇见过,不过之前看过是实现接受对象集合的代码,只不过没注意罢了 推荐一篇文章 直接贴代码吧 public class Person { private S ...