从嵌入式lua读取和编写C结构

ala*_*10n 3 c++ lua struct

我想嵌入lua以允许在我的C++应用程序中编写脚本.特别是,我有两个结构,我想作为参数传递给给定的lua函数.一个是只读的,另一个是读/写的.这些结构的高度简化的例子如下:

struct inData
{
    int x;
    int y;
    //many other fields follow
};

struct outData
{
    int a;
    double b;
    //other fields follow
};
Run Code Online (Sandbox Code Playgroud)

这两个结构都是在C++代码中创建的,并且在调用lua函数之前和之后都会在那里进行处理.如何将这些结构传递给lua函数,以便函数可以执行以下操作:

if(inData.x > 5) then outData.a = 1 end
Run Code Online (Sandbox Code Playgroud)

并且从lua函数返回后,outData实例实际上保留了更改?