您的位置:首页 > 编程语言 > Lua

tolua++ 使用有感

2013-05-31 15:18 232 查看
最近努力的完善基于 cocos2d-x lua 框架,要靠 tolua++ 来封装 hosts 用到的类,发现这东西还是不太智能,存在很多需要注意的地方。

如果要自己扩展数据类型,比如支持 lua 函数回调,就得仿照 cocos2d-x tools 目录下的 tolua 那些 pkg + basic.lua ,注册/替换一些 tolua 生成错误的东西。

另外在代码编码方面,也有很多注意事项:

比如它无法识别 const 写在类型后面的情况,像这样: const char * 可以被识别,但 char const * 则无法识别(后果就是 tolua 认为 char const 整个是个变量名)

再比如 int * 它不认识,那只有在预处理 lua 中 replace 掉它的生成错误(在相应的部位加 * 号之类)

一些什么 vector, ** 什么的 也是无法识别的,需要专门的写一些遍历或什么函数来配合 lua 使用

又比如 const char * const 这样的写法,它也是无法识别的,得在 pkg 中去掉后面的 const, 前面加上 tolua_readonly 才行。

最后有个隐蔽的: 像有些 c 代码里的 int/*bool*/val 这种声明,tolua 是无法识别的(它可能是先去掉了所有注释,于是不知道 int 和 val 是分离的了),得处理

上面的说法还不够全面,先想到这么多,后面再补。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: