#include "stdafx.h"
#include "person.pb.h"
#include <iostream>
#include <fstream>
int _tmain(int argc, _TCHAR* argv[])
{
// Verify that the version of the library that we linked against is
// compatible with the version of the headers we compiled against.
GOOGLE_PROTOBUF_VERIFY_VERSION;
// 璁劇疆鏁版嵁錛?騫跺簭鍒楀寲鍒版枃浠?br /> Test::Person person;
person.set_id( 123 );
person.set_name( "abc" );
person.set_email( "abc@163.com" );
std::fstream out( "person.pb", std::ios::out | std::ios::binary | std::ios::trunc );
person.SerializeToOstream( &out );
out.close();
// 浠庢枃浠朵腑璇誨彇鏁版嵁錛?騫朵笖鍙嶅簭鍒楀寲
Test::Person person1;
std::fstream in( "person.pb", std::ios::in | std::ios::binary );
if ( !person1.ParseFromIstream( &in ) ) {
std::cerr << "Failed to parse person.pb." << std::endl;
exit(1);
}
std::cout << "ID: " << person1.id() << std::endl;
std::cout << "name: " << person1.name() << std::endl;
if ( person1.has_email() ) {
std::cout << "e-mail: " << person1.email() << std::endl;
}
// Optional: Delete all global objects allocated by libprotobuf.
google::protobuf::ShutdownProtobufLibrary();
getchar();
return 0;
}
鍦╰c2涓紝鎵鏈夌殑瀵硅薄閮借璁や負鏄痮bject錛屼互object浣滀負鍩虹被錛屼互1.2.3鏍煎紡琛ㄧず緇ф壙鍏崇郴錛屽錛? --> object 錛?.2 --> worldobject銆?.2琛ㄧずworldobject緇ф壙鑷?錛坥bject錛夈備笅闈㈠垪鍑哄畬鏁寸殑瀵硅薄緇ф壙鏃忚氨銆?/p>
1銆?nbsp; Object
1.1 Item 銆愮墿鍝侊紝姣斿姝﹀櫒銆?/p>
1.1.1 Bag 銆愬寘瑁癸紝鐗規畩鐨勭墿鍝侊紝鍙互瀹圭撼鍏朵粬鐗╁搧銆?/p>
1.2 WorldObject 銆愭樉紺哄湪鍦板浘涓婄殑鐗╀綋銆?/p>
1.2.1 Corpse 銆愬案浣撱?/p>
1.2.2 DynamicObject 銆愬姩鎬佺敓鎴愮殑瀵硅薄錛屾瘮濡傞瓟娉曪紝鐢熷懡鍛ㄦ湡姣旇緝鐭?/p>
1.2.3 GameObject 銆愭父鎴忕墿鍝侊紝榪欎釜鍒嗙被寰堥毦浠庡瓧闈笂鐞嗚В錛屽悗闈細姣旇緝璇︾粏鐨勪粙緇嶃?/p>
1.2.3.1 Transport 銆愪紶閫佺偣銆?/p>
1.2.4 Unit 銆愭父鎴忎腑鏈夌敓鍛界殑鍗曚綅銆?/p>
1.2.4.1 Creature 銆愮敓鐗╋紝闈炵帺瀹躲?/p>
1.2.4.2 TempSummon 銆愪復鏃跺彫鍞ょ墿銆?/p>
1.2.4.2.1 Minion 銆愬疇鐗┿?/p>
1.2.4.2.1.1 Guardian 銆愬畧鍗?/p>
1.2.4.2.1.1.1 Pet 銆愮帺瀹剁殑瀹犵墿錛屾瘮濡傜寧浜虹殑瀹犵墿錛屾垨鑰呮湳澹殑鎭墮瓟錛岄櫎闈炰富浜鴻В鏁o紝鍚﹀垯涓鐩村瓨鍦ㄣ?/p>
1.2.4.2.1.2 Puppet 銆愬個鍎★紝鏈変竴瀹氱殑瀛樺湪鏃墮棿銆傛瘮濡傚痙椴佷緷鐨勬爲浜恒?/p>
1.2.4.2.1.3 Totem 銆愬浘鑵撅紝钀ㄦ弧鐨勫浘鑵俱?/p>
1.2.4.2 Player 銆愮帺瀹訛紝灝變笉鐢ㄥ瑙i噴浜嗐?/p>
灝嗘暣涓瓟鍏戒笘鐣屽垎瑙i潤鎬佺墿浣撳拰闈欐佺墿浣撶殑琛屼負錛屽氨姣旇緝濂界悊瑙d簡銆備簨瀹炰笂錛岀幇瀹炰笘鐣屼篃鏄姝ゃ傚皢涓栫晫鍒掑垎涓烘椂闂村拰絀洪棿2涓淮搴︼紝鐜板疄鐗╀綋灝辨槸絀洪棿鐨勬蹇碉紝琛屼負灝辨槸絀洪棿鐗╀綋鍦ㄦ椂闂寸淮搴︿笂鐨勫彉鍖栥傝薄鍏夋垨鑰呭叾浠栦笉鍙鎴栬呮病鏈夌┖闂村崰浣嶇殑鐗╁搧涔熷彲浠ョ湅浣滅壒孌婄殑絀洪棿鐗╀綋銆傛垜鍦ㄨ繖閲屽厛灝嗙┖闂寸淮搴﹀皢鍒嗙鍑烘潵鍒嗘瀽銆?/p>
宸偣蹇樹簡浠嬬粛GameObject榪欎釜鍙︾被銆傚湪GameObject.h涓紝鏈変釜struct GameObjectInfo瀹氫箟錛岄噷闈㈡湁涓猽nion鑳藉ぇ姒傜湅鍑篏ameObject絀剁珶鎸囩殑鏄摢浜涗笢瑗褲?/p>
0銆丟AMEOBJECT_TYPE_DOOR錛屾寚鐨勬槸闂?/p>
1銆丟AMEOBJECT_TYPE_BUTTON錛屽簲璇ユ槸鎸夐挳錛岄攣涔嬬被鐨勩?/p>
2銆丟AMEOBJECT_TYPE_QUESTGIVER浠誨姟鐗╁搧
3銆丟AMEOBJECT_TYPE_CHEST綆卞瓙
4銆丟AMEOBJECT_TYPE_BINDER娌″畾涔夛紝浼拌娌℃湁鐢ㄤ笂銆?/p>
5銆丟AMEOBJECT_TYPE_GENERIC閫氱敤鐨勶紝璺熶換鍔$浉鍏崇殑涓滆タ
6銆丟AMEOBJECT_TYPE_TRAP闄烽槺
7銆丟AMEOBJECT_TYPE_CHAIR妞呭瓙
8銆丟AMEOBJECT_TYPE_SPELL_FOCUS娌℃悶鎳傚暐鐜╂剰鍎褲?/p>
9銆丟AMEOBJECT_TYPE_TEXT鏂囨湰
10銆丟AMEOBJECT_TYPE_GOOBER搴旇鏄灉瀹炰竴綾葷殑鍚с?/p>
11銆丟AMEOBJECT_TYPE_TRANSPORT浼犻佺偣
12銆丟AMEOBJECT_TYPE_AREADAMAGE鍖哄煙鎬т激瀹籌紝娌℃悶鎳傚暐鐜╂剰鍎褲?/p>
13銆丟AMEOBJECT_TYPE_CAMERA鐓х浉鏈猴紝鍐嶇爺絀朵笅
14銆丟AMEOBJECT_TYPE_MAPOBJECT鍦板浘瀵硅薄錛岀┖鐫
15銆丟AMEOBJECT_TYPE_MO_TRANSPORT鍦板浘瀵硅薄鐨勪紶閫侊紝涓嶇煡閬撳暐鐜╂剰鍎褲?/p>
16銆丟AMEOBJECT_TYPE_DUELFLAG鍐蟲枟鏍囧織錛屼及璁″氨鏄疨K錛屾彃鏃楀惂銆傜┖鐫娌$敤
17銆丟AMEOBJECT_TYPE_FISHINGNODE閽撻奔鐐?/p>
18銆丟AMEOBJECT_TYPE_SUMMONING_RITUAL浠紡錛屼笉鐭ラ亾騫插暐銆備及璁¤窡鏈+鎷変漢閭d笢瑗挎湁鍏熾?/p>
19銆丟AMEOBJECT_TYPE_MAILBOX閭
20銆丟AMEOBJECT_TYPE_DONOTUSE欏懼悕鎬濅箟錛屾病鐢?/p>
21銆丟AMEOBJECT_TYPE_GUARDPOST宀楀摠錛屾槸鏌愮鐢熺墿
22銆丟AMEOBJECT_TYPE_SPELLCASTER欖旀硶鏂芥斁銆?/p>
23銆丟AMEOBJECT_TYPE_MEETINGSTONE闆嗗悎鐭?/p>
24銆丟AMEOBJECT_TYPE_FLAGSTAND涓嶇煡閬撳暐鐜╂剰鍎褲?/p>
25銆丟AMEOBJECT_TYPE_FISHINGHOLE浼拌涔熸槸閽撻奔鐐?/p>
26銆丟AMEOBJECT_TYPE_FLAGDROP鎺夎惤鏍囪
27銆丟AMEOBJECT_TYPE_MINI_GAME涔熸病鎳傛槸鍟ョ帺鎰忓効銆?/p>
28銆丟AMEOBJECT_TYPE_CAPTURE_POINT搴旇鏄儴钀藉拰鑱旂洘浜夊ず鍦板尯
29銆丟AMEOBJECT_TYPE_AURA_GENERATOR鐏墊皵
30銆丟AMEOBJECT_TYPE_DUNGEON_DIFFICULTY鍦頒笅鍩庨毦搴?/p>
31銆丟AMEOBJECT_TYPE_BARBER_CHAIR鐞嗗彂甯堢殑妞呭瓙錛屽攭錛岄兘鍟ョ帺鎰忓効鍟娿?/p>
32銆丟AMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING鍙懅姣佺殑寤虹瓚
33銆丟AMEOBJECT_TYPE_GUILDBANK宸ヤ細閾惰錛岀┖錛屼笉鍙銆?/p>
34銆丟AMEOBJECT_TYPE_TRAPDOOR闄烽槺鐨勯棬銆?/p>
搴旇璇達紝GameObject鏄弿榪版父鎴忎腑錛岄櫎瑁呭銆佺敓鐗┿侀瓟娉曞錛屾棤娉曞噯紜綊綾葷殑涓滆タ錛屾瘮杈冩潅錛屽洜姝ゅ彧鑳界緇熷綊緇撲負娓告垙瀵硅薄
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/romandion/archive/2009/10/27/4733596.aspx