quick-cocos2d-x使用protobuf

血红的双手。 提交于 2019-12-05 10:22:45

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就是我们需要的结果


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!