如何將c結構資料傳給lua

2021-08-26 02:08:09 字數 718 閱讀 7079

最近需要使用lua來讓策劃那些配置一些邏輯,於是調研了一下lua是如何實現這部分工作的,

最終發現乙個通常的策劃是利用lightuserdata和metatable來協調解決這個問題。也即將資料

指標給lua,另外告訴它乙個如何操作這些資料的metamethods即可。

請看下面的示例**:

typedef struct tdata; static int getattribute(lua_state* l) else if(attribute == "y") else lua_pushnumber(l, result); return 1; } static struct lual_reg datalib = , }; void getmetatable(lua_state* l, lual_reg* methods) } int main() lual_openlibs(lua); tdata input = ; lua_pushlightuserdata(lua, &input); getmetatable(lua, datalib); lua_setmetatable(lua, -2); lua_setglobal(lua, "input"); if (lual_dofile(lua, filename)) lua_getglobal(lua, "data"); int output = lua_tointeger(lua, 0); std::cout << output << std::endl; return 0; }

將C結構體變數傳給LUA

typedef struct tdata static int getattribute lua state l else if attribute y else lua pushnumber l,result return 1 static struct lual reg datalib void...

資料傳輸 如何將PS4已儲存的資料傳輸到PS5上

隨著 ps5 在全球範圍內發售,一些朋友想必已經拿到了這台新主機。其中肯定有很大比例的玩家擁有自己的 ps4,那麼如何將 ps4 中儲存的資料傳輸到 ps5 呢?還沒買到 ps5 的玩家,也可以提前收藏一下,以備未來之需。在 ps4 上登入與 ps5 主機上登入的賬號相同的賬號。將系統軟體更新到最新...

如何將表單居中顯示 如何將重複資料突出顯示?

將 中一列資料中重複的,使用特殊顏色突出顯示或者使用一些符號標記出來。例如 乙個 商,可以邀請別的 商加入成為聯合體,報表要顯示所有 商,然後 商最後一列顯示所有聯合體,當聯合體 商跟別的 商重複時要突出顯示,並且加星號。用設計器自帶 demo 資料來源中的訂單明細資料表,使用嚮導建立一張分組報表,...