【问题标题】:Extract variables from Lua into C++从 Lua 中提取变量到 C++
【发布时间】:2012-06-05 10:11:54
【问题描述】:

我正在编写一个数字 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 配置代码的结构也可能更复杂;我可能正在编写一些函数来获取这些值。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您指出正确的方式。其余的在这里:lua.org/pil/25.html
    • 哦,我忘记了 lua_getglobal。无论如何,使用自己的函数当然具有教育价值。
    猜你喜欢
    • 2012-05-25
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2015-12-11
    • 2011-09-11
    相关资源
    最近更新 更多