C 呼叫lua的表

2021-09-26 16:20:00 字數 707 閱讀 8204

c++程式:

void main()

lual_openlibs(l);

lua_pushstring(l, "hello");

lua_setglobal(l, "test");

int ret = lual_dofile(l, "main.lua");

if (ret)

lua_getglobal(l,"conf");//獲得conf表

lua_getfield(l,-1,"titlename");//獲取titlename

printf("titlename = %s \n",lua_tostring(l,-1));

lua_pop(l,1);//彈出titlename

lua_getfield(l, -1, "height");

printf("height = %d \n", (int)lua_tonumber(l, -1));//返回double型別,強制轉換成int

lua_pop(l, 1);//彈出height

lua_pop(l,1);//彈出表

}

由於每次呼叫lua_getfield時都需要計算當前位置,所以每次取完之後都進行彈出1操作,這樣下次進行呼叫時引數固定為-1。最後彈出表即可。

lua程式:

conf =
最後執行結果:

lua與C(一) C呼叫lua

lua和c有兩種關係 一種是在lua中呼叫c的函式,c稱為庫 一種是c中呼叫lua,c就稱為應用程式 此時c中包含了lua的直譯器 c 部分 注意在c 中,通常要把lua的一些標頭檔案定義在extern c 中,因為他們是c語言實現的。1.作為應用程式呼叫lua char buffer print ...

Lua操作棧c呼叫lua

include stdafx.h int main 得到初始化棧大小 printf 初始化棧大小 d n lua gettop plua 開啟所有功能庫 lual openlibs plua 載入指令碼 lual dofile plua,test.lua 將指令碼中的add函式入棧 int ret ...

C 呼叫Lua的函式

經過前面幾章的介紹,相信大家對lua的堆疊已經比較熟悉了,如果還不是很熟悉的朋友,建議多看幾遍前面的教程,或者多敲幾次 那麼,如果已經對lua 的堆疊比較熟悉,接下來的內容就很簡單了。今天我們來看看c 如何呼叫 lua的函式,先看看現在 lua檔案是什麼樣的 plain view plain cop...