CODE 项目整体迁移至码云平台(https://gitee.com)公告
冬瓜猫 / protobuf_tools C++

因为工作需要分析protobuf的数据,google了一下,我个人没有找到合适的,就参考google protobuf文档,写了一个分析工具。这个项目用的是C++Builder XE10.2, win64实现。

c++builder protobuf
拷贝地址

项目最近一次提交:3 个月 前 982bc8506

4_zdhsoft 冬瓜猫 Merge branch 'master' of code.csdn.net:zdhsoft/protobuf_tools 2017-08-19 21:29:23
文件 45行 971 Bytes
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
//---------------------------------------------------------------------------

#pragma hdrstop

#include "protoitem.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
namespace zdh{
int ProtoReader::m_ID = 0;
void ProtoItem::DecodeSubList() {
ProtoReader r;
SubList.clear();
r.Read(m_Data, *this);
}
void ProtoItem::ToStringByLengthLimit(UTF8String & s, XByteBuffer & buff, int paramEIT) {
switch(paramEIT) {
case EIT_DATA:
{
//ProtoReader r;
//SubList.clear();
//r.Read(buff, *this);
s = "";
//
}
break;
case EIT_BINARY:
{
int iCnt = buff.getLength();
s.printf("len:%d >", iCnt);
for(int i = 0; i < iCnt; i++) {
s += IntToHex(buff[i],2);
s += " ";
}
}
break;
default:
{
std::string sss((const char *)buff.getData(), buff.getLength());
s.printf("len:%d,<%s>", buff.getLength(), sss.c_str());
}
};

}
}