转载请注明出处:csdn火木达人
tolua++介绍
tolua++是一种第三方的软件包,可以为Lua提供面向对象的特性,这样我们就可以使用Lua来编写使用C++语言库的脚本文件。tolua++的官方网站:http://www.codenix.com/~tolua/
tolua++的编译这里就不介绍了,想自己编译的网上找教程。 tolua++这个文件在cocos2d-x文件的tools/tolua++目录下有,可以直接使用。这个文件的作用是生成自定义类的“声明”代码,使Lua绑定自定义类的一些成员。
使用tolua++在Lua中使用自定义C++类
在Lua中使用自定义的类需要使用到tolua++工具。可以在cocos2d-x项目中找到。在tolua++工具的目录下有一个README文件,里面有介绍tolua++的使用。
基本使用过程:
1、编写pkg文件生成对应的c/c++文件
2、分别编译1)产生的文件(注意要加上对应的头文件)和需要使用Lua脚本的文件
3、编写Lua脚本,遵从Lua的语法并且使用到的变量,函数,类等都是1中声明过的。
pkg文件的规则
1、枚举类型保留不变
2、不要使用CC_DLL,注意多继承
3、删除inline关键字声明和实现
4、不要用访问限定词
5、不要成员变量
6、保留静态关键词
7、非public的函数都删除
使用tolua++命令
tolua++ -o Lua_Test.cpp Test.pkg
Lua和C++指针的互传
Lua中的C++指针通过自定义的方法直接传到C++中使用
C++中传一个对象的指针到lua中需要使用tolua++库中的tolua_pushusertype(lua_State* L,void* value,char* type):第一个参数为栈,第一个参数为要传的对象指针,第三个参数为对象的类型。
基本类型的传递和C一样
Lua中强转C++指针
tolua.cast(var, “type name");
本文介绍了如何使用tolua++在Lua中调用自定义的C++类,包括tolua++的基本使用步骤、pkg文件的编写规则以及Lua与C++之间指针的互传方法。通过tolua++命令生成C/C++文件,并在Lua脚本中利用tolua.pushusertype进行对象传递。
1233

被折叠的 条评论
为什么被折叠?



