将protubuf放置在external文件夹
在vs工程里的luacocos2d里新建筛选器protubuf,将pb.c加入到该筛选器下.
将pb.c文件的属性里设置改文件编译为C文件.
将luastruct放置在external的lua下
在vs工程里的luacocos2d里新建筛选器luastruc,将struct.c加入到该筛选器下.
将struct.c文件的属性里设置改文件编译为C文件.
然后在lua_module_rigister.cpp里进行注册.加入以下代码
#ifdef __cplusplus
extern "C" {
#endif
int luaopen_protobuf_c(lua_State *L);
int luaopen_struct(lua_State* L);
#ifdef __cplusplus
}
#endif
在lua_module_register函数里添加
luaopen_protobuf_c(L);
luaopen_struct(L);
至此protubuf就可在windows上运行了.但是Android上还不行.
修改frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android下的Android.mk文件
#network
LOCAL_SRC_FILES += ../../../../external/protobuf/pb.c
#luastruct
LOCAL_SRC_FILES += ../../../../external/lua/luastruct/struct.c
至此andriod也可以运行.
在lua中使用则仍需在
lua工程目录下添加protubuf的lua代码.
至此protubuf就可以在lua中使用.
但是如果应用到实战中,仍需使用luasocket或者websocket先读到数据包,再使用protubuf解析出来实际数据.