摘要:
在系列文章二三中描述的绑定C++对象基础篇和进阶篇,都有一个很大的问题,就是每个类需要写大量的代码,从类的元表创建、方法注册到实例创建,都需要自己重复写类似的代码。如果涉及N个不同类,会有大量重复的代码,能否创建一个模板类,把这些重复的代码进行简化,通过模板的方式绑定成不同的类?下面的luna<T> 阅读全文
摘要:
在系列第四篇通过luna绑定C++对象的机制,没有解决C++成员变量在lua中直接使用的问题。例如local car = Car(); car.x = 100的用法。本节介绍增强版的lunar模板类,支持export C++变量和函数到lua中。 阅读全文
摘要:
lua绑定C++对象的最基本模型。使用新创建userdata存放C++对象实例指针,并针对userdata设置元表,元表中注册各种C++的方法,并让__index指向元表自身,这样当使用诸如stu.setAge时,会通过__index指向的table进行索引,当__index指向自身就直接索引自身即可。这样在lua中创建userdata后,create_student接口也会自动创建C++对象关联在一起,并且在使用userdata过程中可以像C++引用成员方法一样去使用 阅读全文
摘要:
在系列第二篇文章lua绑定C++对象基础模型中,代码处理上较为麻烦。如果要减少包装,能否在一个地方把要注册的C++方法统一起来,抽象一个call_func的公共接口出来,所有的C++成员函数都注册成call_func函数,通过call_func的不同参数来区分调用不同的成员函数。 阅读全文
摘要:
本文主要介绍lua绑定C++对象的原理和方法,并能在C/C++定义类和方法,在lua中创建C++类的句柄实例,像面向对象一样去使用C++类实例。为了便于大家理解,系列文章会从基础知识讲解,并通过多个版本的进化,一步步完成从基础到多版本实践的完美结合和深入,彻底理解lua绑定C++对象的原理方法。在阅读本系列文章前,需要具备一定的lua开发经验以及lua与C/C++相互调用操作的知识。 阅读全文