在quick cocos2dx中增加解析protobuf的扩展

在quick cocos2dx中增加解析protobuf的扩展,第1张

概述导出了lua版的protobuf文件以后,就要给quick cocos2dx使用了(其实给cocos2dx的lua版本使用也是同样的道理) 1 根据自己的quick版本查找lua扩展目录,我用的是3.2rc版, 目录在 quick-cocos2dx-3.2rc0/quick/lib/lua_extensions在此新建protobuf文件夹,免得日后混乱 把protoc-gen-lua/proto

导出了lua版的protobuf文件以后,就要给quick cocos2dx使用了(其实给cocos2dx的lua版本使用也是同样的道理)

1 根据自己的quick版本查找lua扩展目录,我用的是3.2rc版,

目录在 quick-cocos2dx-3.2rc0/quick/lib/lua_extensions在此新建protobuf文件夹,免得日后混乱

把protoc-gen-lua/protobuf/pb.c文件拷贝至此文件夹下

2 修改lua_extensions/lua_extensions.c 这个配置文件,以支持最新添加的protobuf

其实只加了2行代码,由于整个配置比较小,全贴过来了


#include "lua_extensions.h"#if __cplusplusextern "C" {#endif// cJson#include "cJson/lua_cJson.h"// zlib#include "zlib/lua_zlib.h"// lpack#include "lpack/lpack.h"#ifndef WP8// socket#include "socket/luasocket.h"#include "socket/mime.h"#include "socket/socket_scripts.h"// filesystem#include "filesystem/lfs.h"#endif// lsqlite3#include "lsqlite3/lsqlite3.h"//protobuf#include "protobuf/pb.c"   static luaL_Reg luax_exts[] = {#if CC_USE_JsON    {"cJson",luaopen_cJson_safe},#endif    {"zlib",luaopen_zlib},{"pack",luaopen_pack},#ifndef WP8    {"socket.core",luaopen_socket_core},{"mime.core",luaopen_mime_core},{"lfs",luaopen_lfs},#endif#if CC_USE_sqlITE    {"lsqlite3",luaopen_lsqlite3},#endif    {NulL,NulL}};voID luaopen_lua_extensions(lua_State *L){    // load extensions    luaL_Reg* lib = luax_exts;    lua_getglobal(L,"package");    lua_getfIEld(L,-1,"preload");    for (; lib->func; lib++)    {        lua_pushcfunction(L,lib->func);        lua_setfIEld(L,-2,lib->name);    }    lua_pop(L,2);    // load extensions script#ifndef WP8	luaopen_socket_scripts(L);	luaopen_pb(L);      // add protobuf extension register#endif}#if __cplusplus} // extern "C"#endif

重新编译play3,需要在libquick/lua_extensions里面添加刚刚加入的protobuf/pb.c这个文件


3 把lua的库也放到quick中

protoc-gen-lua/protobuf/ 这个目录下除了有pb.c以外还有*.lua文件。用来支持proto转码后的文件调用。

复制protoc-gen-lua/protobuf文件夹到自己的项目目录下面。

由于win平台下并没有endian.h这个文件,因此这句需要注释掉,否则编译不过,最好作如下修改

#ifdef _WIN32#else    #ifdef _WIN64    #else        #ifdef _ALLBSD_SOURCE            #include <machine/endian.h>        #else            #include <endian.h>        #endif    #endif#endif

编译成功以后就可以开始尝试读取和解析protobuf的内容了。

此至,在quick-cocos2dx中就具解析protobuf的能力了。接下来是尝试lua的demo.


PS:在网上看了很多关于quick-cocos2dx加入protobuf的文章,发现大多数不可行,于是自己折腾一番,终于有点效果。

特记录下来,给大家参考,然后希望后来的quick版本能够自带此功能。

不过据说这个会遇到些嵌套的问题,这个日后再解决,吐糟:网上好多风云的pbc工程加入的文章都是没有完整工程的,无法验证。

总结

以上是内存溢出为你收集整理的在quick cocos2dx中增加解析protobuf的扩展全部内容,希望文章能够帮你解决在quick cocos2dx中增加解析protobuf的扩展所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1008625.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存