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的理解是,它就是乙個棧 可能理解的不對 然後通過對這個棧的操作來實現資料的互動。呼叫函式跟訪問變數其實差不多,前面都是做一樣的事,只是呼叫函式時獲取的變數是函式名。然後將需要的...