Lua&tolua++与c++的使用

本文介绍了如何使用tolua++在Lua中调用自定义的C++类,包括tolua++的基本使用步骤、pkg文件的编写规则以及Lua与C++之间指针的互传方法。通过tolua++命令生成C/C++文件,并在Lua脚本中利用tolua.pushusertype进行对象传递。

转载请注明出处: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");

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值