lua與C互動(3) 與lua表的簡單互動

2021-09-24 09:35:35 字數 1059 閱讀 2135

c讀取lua表中字段的值。

lua**:

print("print from test lua.")

name = "linxing"

age = 19

list = {}

list.width = 190

list.height = 540

list.title = "rectangle"

cc**:

#include #include #include #include #include "lua.hpp"

#include "lauxlib.h"

#include "lualib.h"

static void stackdump(lua_state* l)

} ++count;

}int main()

lual_openlibs(l);

lual_dofile(l, "test.lua");

/* 方法一:首先將表壓入棧頂,然後通過lua_pushstring壓入表中的欄位名字,

最後通過lua_gettable取得表中字段的值,壓入到之前表中欄位名字的位置

*/ lua_getglobal(l, "list"); // 將lua中全域性變數存放到lua棧頂中(這個棧是c與lua互動的通道)

//lua_getglobal(l, "name");

lua_pushstring(l, "width");

lua_gettable(l, 1); //第二個引數為表的下標

stackdump(l);

/* 方法二:首先將表壓入棧頂, 通過lua_getfield方法取得表中變數的值,並壓入棧頂。

*/ lua_getfield(l, 1, "height");//第二個引數為表的下標

lua_getfield(l, 1, "title");

stackdump(l);

std::cin.get();

lua_close(l);

return 0;

}

C 與Lua的互動

c 呼叫lua用 luainte ce.dll lua呼叫c 用luanet.dll 他們之間的互動主要就是靠這兩個庫檔案,需要把渣兩個檔案剛到vs工程下的debug資料夾下。using luainte ce using system using system.collections.generic...

C 與Lua互動,lua環境配置

1.新建控制台專案 2.勾選空專案,靜態庫。2.標頭檔案匯入原始碼中的全部.h 標頭檔案,原始檔匯入原始碼的的.c檔案,除 lua.c 和 luac.c外 3.編譯生成lib 1.新建控制台專案,專案 屬性 c c 常規 附加包含目錄 新增lua原始檔所在的目錄 2.鏈結器 常規 附加庫目錄 新增 ...

C 與Lua互動(二)

c 與lua的之間函式的相互呼叫 1.c 調lua函式 c與lua的所有互動都是通過乙個棧來完成的。我對前面提到的虛擬機器l的理解是,它就是乙個棧 可能理解的不對 然後通過對這個棧的操作來實現資料的互動。呼叫函式跟訪問變數其實差不多,前面都是做一樣的事,只是呼叫函式時獲取的變數是函式名。然後將需要的...