如何从Lua脚本中的另一个C++对象获取对C++对象的引用?我真的不知道该怎么总结,在单词正确,所以让我用一个Lua示例首先阐述:使用从C++对象到另一个C++对象的指针来修改成员变量Lua
function doSomething()
compo = a:getComponent()
compo:setVariable(0)
end
一个是一个C++对象,函数getComponent返回一个指针:
// inside A.h
Component* A::getComponent();
看来问题在于getComponent()
正在将Component对象的副本传递给Lua,而不是引用。我遇到了每个返回指针的函数的相同问题,Lua无法修改原始对象。
对象a似乎工作正常,如果我从Lua内部修改一个变量,它的结果是用C++镜像的。 A和组件都已绑定到Lua以及所需的方法。
我是否在语法上丢失了某些东西,或者是否有比这更多的东西?
我正在使用luabind,Lua 5.1和MinGW。感谢您提前提供任何帮助。
编辑
这里是luabind代码。我总结它,因为有一帮有没有关系问题的其他绑定:
luabind::class_<A>("A")
.def("getComponent", &A::getComponent)
我不认为你有足够的间接性,你呢? – 2013-03-17 02:59:50
@ RichardJ.RossIII我的确有几个层次的间接性,但它似乎是因为我试图将问题简化为根。除非你的意思是我的措词令人困惑,在那种情况下,我的坏话,我倾向于漫步。 – 2013-03-17 03:15:54
这将有助于显示'A'的Luabind代码。 – 2013-03-17 03:19:10