将Lua中的变量提取到C ++中

时间:2012-05-31 06:54:47

标签: c++ lua c++11 configuration-files ini

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

假设我的lua文件计算变量volmass

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

我想将volmass传递给C ++代码。我还希望通过method std::string

我可以做this之类的事情。但是,在此示例中,它们逐个遍历表的元素,而不依赖于变量的名称。我希望C ++根据名称提取变量值。 lua配置代码的结构也可能更复杂;我可能正在编写一些函数来获取这些值。

1 个答案:

答案 0 :(得分:0)

我认为你可以创建GetGlobal(name)这样的函数,它基本上会返回给定变量的值。然后从C ++调用此函数,并将appriopriate参数压入堆栈,并从堆栈中获取结果。

此外,使用lua_is*函数可能值得保护您的代码免受类型错误的变量的影响。

我可以为您发布更完整的代码解决方案,但我不希望您破坏自己编写它的乐趣;),所以请告诉我您是否需要任何其他信息。