Luaスクリプト内で、別のC++オブジェクトからC++オブジェクトへの参照を取得するにはどうすればよいですか? それを言葉で適切に要約する方法がよくわからないので、最初にLuaの例で詳しく説明しましょう。
function doSomething()
compo = a:getComponent()
compo:setVariable(0)
end
a は 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)