1、下载pbc项目 https://github.com/miaodadao/pbc
2、proto生成pb文件
https://code.google.com/p/protobuf/downloads/list 下载protoc文件,然后切换到上面下载完成后解压的文件下调用下面安装命令
./configure --prefix=/usr/local/protobuf
make
make check
make install
安装完成后在存放proto的文件下调用
protoc -- descriptor_set_out test.pb iosgame.pb iosgame.proto
把生成好的pb文件放到项目的res文件下
3、修改pbc项目
添加pbc-lua.h头文件,文件内容
#ifndef __LUA_PBC_EXTRA_H_
#define __LUA_PBC_EXTRA_H_
#if defined(_USRDLL)
#define LUA_EXTENSIONS_DLL __declspec(dllexport)
#else /* use a DLL library */
#define LUA_EXTENSIONS_DLL
#endif
#if __cplusplus
extern "C" {
#endif
#include "lauxlib.h"
int LUA_EXTENSIONS_DLL luaopen_protobuf_c(lua_State *L);
#if __cplusplus
}
#endif
#endif
修改pbc项目中 binding\lua\pbc-lua.c 文件,添加#include "pbc-lua.h",把pbc里面的文件添加到quick的项目里面
在quick项目里面Build Settings Header Search Paths 添加"$(QUICK_COCOS2DX_ROOT)/lib/pbc"
在Appdelegate里面添加
#include "pbc-lua.h"头文件
在 bool AppDelegate::applicationDidFinishLaunching()里面添加luaopen_protobuf_c(L);
4、读取数据
require("protobuf")
local iosgame = CCFileUtils:sharedFileUtils():getFileData("iosgame.pb")//数据结构
protobuf.register(iosgame)
local stringBuf = CCFileUtils:sharedFileUtils():getFileData("test.game")//需要的数据
result = protobuf.decode("mygame.CMaindata",stringBuf )
result就是我们需要的结果