我正在考虑将 Lua 嵌入到我正在开发的 C++ 应用程序中。我的意图是使用 Lua 编写脚本,为某些给定的输入执行哪些有序操作,即。在 c++ 程序中接收一个新的工作项,将详细信息传递给 Lua 后端,Lua 回调到 c++ 中执行必要的工作,返回完成的结果。
涉及的主要数据结构是一个大型(大约 80 多个成员)struct
。我(非常)是 Lua 新手,我不确定如何将它传入和传出我的主机应用程序和嵌入式 Lua 状态。
到目前为止,我认为我的选择是:
a) 在 C++ 和 Lua 之间交叉时,将所有单独的数据成员推入/弹出堆栈(听起来很乱)。
b)构造一个表并填充值,然后将其放入/退出堆栈(更简洁一些)。
c)将它作为userdata
(轻/重?)传递(我对此很粗略,不确定是否/如何从Lua端访问它以查询哪些操作是必要的)。
任何指导将不胜感激。