从Lua中提取变量至C++。

我正在编写一份 C++ 数值代码。这份 C++ 代码有一个配置文件,其中包含我的系统的物理参数。我希望能够在配置文件中进行数学计算和一些编程。Lua 似乎是完美的选择。

假设我的 Lua 文件计算了变量 volmass

method = cube
len = 3
rho = 1.5
vol = len*len*len
mass = vol*rho

我想要将 volmass 传递给 C++ 代码。我还想传递 method,它是一个 std::string

我可以像这样那样做。但是,在此示例中,它们逐个处理表的元素,而不依赖于变量的名称。我想让 C++ 基于变量名称提取变量的值。此外,Lua 配置代码的结构可能更复杂;我可能会编写一些函数来获取这些值。

点赞
用户752976
用户752976

我认为你可以编写一个名为GetGlobal(name)的函数,该函数基本上将返回给定变量的值。然后,通过将适当的参数推送到堆栈上,从C ++调用此函数,并从堆栈中获取结果。

此外,使用lua_is*函数可以将代码与错误类型的变量保护起来。

我可以向您发布代码的更完整解决方案,但我不想破坏您自己编写代码的乐趣;), 因此,请让我知道您是否需要任何其他信息。

2012-05-31 10:01:23