2

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

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

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

我想传递vol和传递mass给 C++ 代码。我也想通过method,这是一个std::string

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

4

1 回答 1

0

我认为您可以制作诸如 之类的函数GetGlobal(name),它基本上会返回给定变量的值。然后从 C++ 调用此函数,并将适当的参数压入堆栈,并从堆栈中获取结果。

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

我可以向您发布更完整的代码解决方案,但我不想让您破坏自己编写代码的乐趣;),所以如果您需要任何其他信息,请告诉我。

于 2012-05-31T10:01:23.263 回答