我正在研究一个数字C ++代码。这个C ++代码有一个配置文件,其中包含我系统的物理参数。我希望能够在配置文件中进行数学计算和一些编程。 Lua似乎很完美。
假设我的lua文件计算变量vol
和mass
:
method = cube
len = 3
rho = 1.5
vol = len*len*len
mass = vol*rho
我想将vol
和mass
传递给C ++代码。我还希望通过method
std::string
。
我可以做this之类的事情。但是,在此示例中,它们逐个遍历表的元素,而不依赖于变量的名称。我希望C ++根据名称提取变量值。 lua配置代码的结构也可能更复杂;我可能正在编写一些函数来获取这些值。
答案 0 :(得分:0)
我认为你可以创建GetGlobal(name)
这样的函数,它基本上会返回给定变量的值。然后从C ++调用此函数,并将appriopriate参数压入堆栈,并从堆栈中获取结果。
此外,使用lua_is*
函数可能值得保护您的代码免受类型错误的变量的影响。
我可以为您发布更完整的代码解决方案,但我不希望您破坏自己编写它的乐趣;),所以请告诉我您是否需要任何其他信息。