标题可能听起来有点递归 - 但这是我正在尝试做的:
我有 C++ 类 Foo 和 Foobar; 我正在使用 tolua++ 将它们导出到 Lua
在 Lua 中:
function wanna_be_starting_something()
foo = Foo:new()
fb = Foobar:new()
-- do something
foo.setResult(42) -- <- I want to store something back at the C++ end
end
在 C++ 中
int main(int argc, char argv[])
{
MyResult res;
LuaEngine * engine = new LuaEngine();
engine->run('wbs-something.lua');
// I now want to be able to access the stored result, in variable res
};
所以我的问题是:如何将数据从 Lua 操作的 C++ 对象传递回 C++ 程序?
最佳答案
要了解如何来回交换数据,您应该了解 Lua 堆栈,这是 Lua 用来与主机程序通信的结构。我想 tolua++ 会为您导出的类/方法处理这个问题。
这是一个好的开始:http://www.lua.org/pil/24.html适用于 Lua 5.0,但有关于如何使其与 5.1 一起使用的指示(我假设是您正在使用的 Lua 版本)。
如果您不想深入了解所有细节,您始终可以求助于创建一个将值设置到全局对象中的临时 C++ 方法。恕我直言,这不是最干净的方法,但可以工作。
关于c++ - 在 C++ 中嵌入 Lua : Accessing C++ created through Lua, 回到 C++(或将结果从 Lua 返回到 C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861942/