1、C++初始化tolua++环境
tolua++根据pkg文件生成C++的对应文件,在文件的最后有一个TOLUA_API int luaopen_lua_bind_cpp (lua_State* tolua_S)函数,把这个函数写在lua环境初始化的位置,这样就把tolua++注册的常量、函数、变量注册到lua环境,这样在lua脚本里就可以直接使用了
2、常量、函数或变量的注册
使用//tolua_begin和//tolua_end把想要注册的常量、函数和变量包含起来,并在pkg文件里包含对应的头文件,这样就注册成全局的
如果想要把常量、函数或变量注册到一个模块里,就要在pkg文件里应用class
3、注册函数
图5
图6
图5使用#define定义USER_RET,tolua++语法解析的时候把USER_RET解析成自定义的结构,这样tolua++就理解为你要返回一个元表
图7
图8
图7当中直接返回一个int,tolua++就理解为你要返回一个int值,这样你的函数返回的结果就是你想要返回的结果,tolua++就直接push了。所以想要返回元表的#define一下,想要返回值的就直接写int或其他类型名。
以上只是我的猜测,如果有什么不对的请指正。
图9
图10
图11
图12
Lua_State是lua_State的#define,图9和图11两种不同的定义方式,分别有图10和图12两种不同的结果