如何從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