C语言生成lua数组表格问题,困扰中~~~
需求是这样,在c语言中有一个结构如下:
struct A
{
BYTE x;
BYTE y;
DWORD data[2];
};
需要转换成lua的表格,表格形式这样:
tbl_a = { 4, 5, {1,2} }
为了满足上述需求给脚本调用,我在c代码中这样写:
lua_createtable(L, 0, 0); // 创建表格A
lua_pushnumber(L, 4);
lua_rawseti(L, -2, 1); // x
lua_pushnumber(L, 5);
lua_rawseti(L, -2, 2); // y
lua_createtable(L, 0, 0); // 创建子表格,对应上面的data数据
lua_pushnumber(L, -2, 1);
lua_rawseti(L, -2, 1);
lua_pushnumber(L, -2, 2);
lua_rawseti(L, -2, 2);
lua_setfield(L, -3, "data"); // 设置子表格,这个用法可能是不对的
lua_setfield(L, -2, "A"); // 完成表格A的创建
这样生成的表格数据是无效的,在调用脚本的时候会失败,应该是嵌套的表格创建方法不对,请lua大神指点一二,谢谢!