下载protobuf-2.5.0.zip,解压
打开protobuf solution
编译solution
会生成对应的release或debug 版本的
protoc.exe
libprotobuf-lite.lib ,libprotobuf.lib, libprotoc.lib
编译完成
-----------------------------------------------------------------------------
编写proto 文件
如 person.proto
message Person
{
required int32 id = 1;
required string name = 2;
repeated string jobs = 3;
optional int32 opt = 4;
}
进入person.proto 所在目录
D:\protobuf-2.5.0\vsprojects\Debug\protoc.exe -I=.\ --cpp_out=.\ person.proto
注意路径即可
成功 后回生成
在vs 工程中引用即可
void test2(){
Person p ;
p.set_id(2);
string * s= p.mutable_name();
*s = "wangxunfff";
string * s3 = p.add_jobs();
*s3 = "student";
std::ofstream output("./log2");
//std::fstream output("./log2", ios::out | ios::trunc | ios::binary);
if (!p.SerializeToOstream(&output)) {
cout << "Failed to write msg." << endl;
}
output.close();
//std::fstream in("./log2", ios::in| ios::binary);
std::ifstream in("./log2");
Person p1 ;
p1.ParseFromIstream(&in);
in.close();
cout << p1.name() << " " << p1.id() << p.jobs_size() << p.jobs(0) << endl;
}
int main(){
test2();
return 0;
}