如何将C++对象传给lua使用

问能不能将C++对象传到lua中使用

请问能不能将C++对象传到lua中使用
例如

C++中有这样也一个类 class CIniFile;

现在在lua想用这个对象

function SetFileName(IniFile)
IniFile.SetFileName("fasdf")
end

IniFile 是通过C++传过来的。

这样可以吗?

对象无法传
你看Lua的教程就知道了
Lua支持的不是C++ 是C 而且不是所有的C都支持
本身Lua是用标准C语言开发 所以也只能实现C语言的功能 C++就已经超出范围了
所以要把对象放进去 必须按照一定的格式 逐个把函数和参数放进去 再到Lua按顺序逐个取出
温馨提示:答案为网友推荐,仅供参考
第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, 用现成的库是最直接的方式。
第3个回答  2010-07-20
进来学习一下
第4个回答  2010-07-20
不行的,不是一个标准
相似回答