把C的结构体传送给lua使用

tech2024-11-19  11

文章目录

把C的结构体传送给lua使用

把C的结构体传送给lua使用

#include <stdio.h> extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } typedef struct haha { int a; int b; }haha; /* 指向lua解释器的指针 */ lua_State* L; int main ( int argc, char *argv[] ) { /* 初始化Lua */ L = luaL_newstate(); /* 载入Lua基本库 */ luaL_openlibs(L); /* 注册自定义函数 */ lua_register(L, "average", average); luaL_loadfile(L,"avg.lua"); haha a={8,9}; lua_pcall(L,0,0,0); lua_getglobal(L, "func1"); lua_newtable(L); lua_pushinteger(L, a.a); lua_setfield(L, -2, "name"); lua_pushinteger(L, a.b); lua_setfield(L, -2, "age"); printf("%d\n",lua_pcall(L, 1, 1,0)); /* 执行avg.lua文件 */ int result = lua_tonumber(L,-1); printf("%d\n",result); luaL_dofile(L, "avg.lua"); /* 关闭Lua */ lua_close(L); /* 暂停 */ printf( "Press enter to exit..." ); getchar(); return 0; }

function func1(L) print("esfs") print(L.age) return -2; end
最新回复(0)