客方的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了