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

Extract variables from Lua into C++

本文关键字:C++ 提取 Lua 变量      更新时间:2023-10-16

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

我认为

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

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

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