客方的ProtocolBuffers 详细说明,可以下载最新版的ProtocolBuffers包。
我所下载的包是:protobuf-2.4.1.tar.bz2 、 protoc-2.4.1-win32.zip
ProtocolBuffers 首页:http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/overview.html
protobuf-2.4.1.tar.bz2 是源码包
protoc-2.4.1-win32.zip 是编译 .proto 文件的编译器
本文使用 ProtocolBuffers 的环境
操作系统: windows 7 64位
开发工具:Visual studio 2008
开发语言:C++、MFC类库
第一步: 编译protobuf-2.4.1工程
说明:编译protobuf-2.4.1工程后生成 libprotobuf.lib, libprotobuf.lib 会在自已的工程文件中用到这个库文件
1)当前的目录结构为:
E:\ProtocolBuffers\ 此目录结构下有两个包 protobuf-2.4.1.tar.bz2 、protoc-2.4.1-win32.zip
2)解压 protobuf-2.4.1.tar.bz2 包
会生 E:\ProtocolBuffers\protobuf-2.4.1\protobuf-2.4.1目录结构
调整后的目录结构为:E:\ProtocolBuffers\protobuf-2.4.1目录结构,便于应用。
3)VS2008编译工程
找到 E:\ProtocolBuffers\protobuf-2.4.1\vsprojects\protobuf.sln文件。
用VS2008 打开,然后编译整个功程,很顺利的编译完整个功程。
如图所示:
编译完成后会在E:\ProtocolBuffers\protobuf-2.4.1\vsprojects\Debug 目录结构中生成libprotobuf.lib库文件。
4) 如果出现问题:
可以阅读 vsprojects\readme.txt 说明文档。
第二步:编写 .proto 文件
1)在目录 E:\ProtocolBuffers\protobuf-2.4.1\examples 中有个示例
可以先按官方的文档来熟悉一下。
2) 编写 .proto 文件
自已编写的 shapeobject.proto 文件
package candee;
option java_package = "com.example.candee";
option java_outer_classname = "ShapeObjectProto";
message DrawInfoPB {
message ColorVal {
required int32r = 1;//int32 unsigned short
required int32g = 2;
required int32b = 3;
}
required int32toolbarState = 1;// TOOLBAR_STATE
required ColorValpenColor = 2;// 笔的颜色
required int32penLineWidth = 3;// 用户设置画笔的宽度
required ColorValwordColor = 4;// 字的颜色
required int32wordLineWidth = 5;// 用户设置字的宽度
required ColorValgraphColor = 6;// 图形的颜色
required int32graph = 7;// 图形
required int32graphLineWidth = 8;// 绘制图形的线宽
}
message ShapeObjectPB {
required DrawInfoPB drawInfoPB = 1;// 绘画信息
message DrawPointPB {
required int32 x1 = 1;
required int32 y1 = 2;
required int32 X2 = 3;
required int32 y2 = 4;
}
repeated DrawPointPB drawPointPB = 2;// 绘画坐标
optional string textPB = 3;// 编辑框文字信息
}
message DataPB {
repeated ShapeObjectPB shapeObjectPB = 1;
}
第三步 编译 shapeobject.proto 文件,生成C++源文件
1)解压 E:\ProtocolBuffers\protoc-2.4.1-win32.zip
会生成 E:\ProtocolBuffers\protoc-2.4.1-win32\protoc.exe 编译文件。
2) 将 protoc.exe 考贝到 shapeobject.proto文件同一级目录中。
本目录为 E:\ProtocolBuffers\protobuf-2.4.1\examples
3)命令执行protoc 文件
在\examples\ 新建一个目录为 1\用来保存生成的C++源文件
在命令行下,执行protoc --cpp_out=1 shapeobject.proto
如图所示:
4)生成的C++源文件
在E:\ProtocolBuffers\protobuf-2.4.1\examples\1 目录中保存生成的文件
生成的文件:shapeobject.pb.cc shapeobject.pb.h
将这两个文件添加到你的功程中,就可以用户ProtocolBuffer了