1. 程式人生 > 其它 >LUA-C++互動篇-lua向C++傳遞Table

LUA-C++互動篇-lua向C++傳遞Table

技術標籤:Lualua

LUA-C++互動篇-lua向C++傳遞Table

1.程式碼塊

所有涉及到的程式碼將會在本部中進行展示

1.1 LUA程式碼塊

在本段程式碼中,我們將一個tab傳遞給了c++
local tab = {x=1.41,y = 3.3,z = 4.12};
core.setPos(tab);
//這裡的core是我們開發的c++共享庫

1.2 C++程式碼塊

c++將會處理接收tab資料
typedef unordered_map<string, double
> sdmap; static void print(sdmap& map) { sdmap::iterator it = map.begin(); while (it != map.end()) { cout << setw(5) << it->first<<" "<<setw(10)<<it->second<<endl; it++; } } static sdmap checkTable(lua_State *L) { lua_pushnil(L); sdmap sdp;
while (lua_next(L, 1) != 0) { sdp.insert({ lua_tostring(L, -2) , lua_tonumber(L, -1) }); lua_pop(L, 1); } return sdp; } static int setPos(lua_State* L) { sdmap tb = checkTable(L); print(tb); return 0; }

2. 測試

2.1 print輸出

在這裡插入圖片描述