Lua - 获取表格到 C,更新并将其上传回来。

我有一个 Lua 表,它的结构未定义(例如,用户可以在其中放置任何东西-数字,字符串等)。我需要将数据表传递到 C 代码中,存储在数据文件中,然后一段时间后打开它并将值恢复到 Lua 脚本中。

lua_topointer 可以获取数据地址,但这大约就是全部了。没有办法从中获取数据并将其上传回去。

如何做到这一点?

点赞
用户1601606
用户1601606

将 Lua 数据序列化为字符串以便保存

建议在 Lua 侧将数据序列化为字符串以便保存(当然,不支持函数或 userdata 等不能被序列化的数据类型)。之后,你可以将该字符串保存到文件中,并在需要时将其反序列化回来。

如果你想在 C 侧进行序列化操作,你需要遍历整个表格。因为你只能获取到对表格的引用,这会涉及很多易出错的模板代码,并且不会获得任何性能上的优势。

你可以查看 http://lua-users.org/wiki/TableSerialization 上提供的 Lua 序列化代码。

2014-04-05 13:12:59