c++でprotobufを使用する

1250 ワード

まずprotobuf-2.5をダウンロードします.0,解凍後,VSを開いてコンパイルしlibprotocを得る.lib、libprotobuf-lite.lib、libprotobuf.libとprotoc.exe
ファイルprotoファイルを作成する:testpro.proto、内容は以下の通りです.
message Person {   required string name = 1;   required int32 id = 2;   optional string email = 3;     enum PhoneType {     MOBILE = 0;     HOME = 1;     WORK = 2;   }     message PhoneNumber {     required string number = 1;     optional PhoneType type = 2 [default = HOME];   }     repeated PhoneNumber phone = 4; }
protocでexe対testpro.protoはコンパイルされ、コマンドは以下の通りです.
protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/testpro.proto
すなわち、protoc-I=./--cpp_out=././testpro.proto
現在のディレクトリの下に2つのファイルtestproが得られます.pb.ccとtestpro.pb.h
vsを使用してプロジェクトを作成しtestpro.pb.cc、testpro.pb.h、libprotoc.libとlibprotobuf.libをプロジェクトディレクトリにコピーしprotobuf-2.5.0srcgoogleフォルダのパスをプロジェクトディレクトリに追加すると、使用できます.コードは次のとおりです.
#include "testpro.pb.h"
#include <iostream>
#include <string>
using namespace std;

#pragma comment(lib,"libprotobuf.lib")
#pragma comment(lib,"libprotobuf-lite.lib")

void TestProto()
{
	Person* per = new Person;

	per->set_id(100);

	per->PrintDebugString();
}

int main()
{
	TestProto();
	return 0;
}