第1个回答 2015-11-01
直接传很麻烦.
到lua官网下载SLB库,此库不需要像别的那样要下载Boost库.直接可用.
用法是有些细节的.我这里简单解释
比如有个类
class CA
{
public :
int fun1(float a);
}
在.h里加上
SLB3_DECLARATION(CA,"classca",policy::Default)
你在cpp里加上
SLB3_IMPLEMENTATION(CA , c) {
c.set("fun1",&LBPreParam::fun1);
}
这样,这个类和 函数就被传入lua,在lua里也能用了.
第2个回答 2010-07-22
可以传递。我自己的项目也在做这个。
不过完全用lua的C API写起来比较痛苦,它是基于栈操作的,一会儿push, 一会儿pop, 很容易把头都搞大了。而且lua不是天生支持面向对象,要实现类的抽象还需要在表和metatable上捣鼓。
不过有很多实现这个功能的库,比如luabind, 用现成的库是最直接的方式。