Lua與C C 互動函式問題

2021-07-11 13:22:15 字數 699 閱讀 4051

初學lua,遇到註冊c/c++互動函式問題

在lua與c/c++互動時,c/c++的註冊lua函式若是乙個有返回型別(壓棧)而不是獲取型別的時候應該返回1而不是返回0,否則會出現在lua中值為nil(空)

不太明白為什麼事這樣,如果有知道的大神,麻煩講解下

如:應該是

1

2

3

4

5

6

intcreateclass(lua_state *l)

而不是1

2

3

4

5

6

intcreateclass(lua_state *l)

否則在lua裡面呼叫這個函式,

local c = my_class.create() //假設這個函式名稱註冊為create,是my_class裡面的

第乙個會正常呼叫,第二個會返回nil

注:在用lua申請記憶體時,如果是c++的,務必用new來初始化記憶體 new (物件名) 類名(形參表)

Lua與C C 的互動

lua 從 取得 luatinker 可以從 取得 tolua 可以從 取得 關於lua與c c 的互動 c c 呼叫lua的函式還是比較簡單的,可以參考lua tinker的實現。lua呼叫c c 的函式如果用最原始的方式有很大限制,只能呼叫型別為 typedef int lua cfunctio...

lua與C C 的互動

基於vs的lua原始碼,位址為 lua作為小巧精悍的指令碼語言,易於嵌入c c 中 廣泛應用於遊戲ai 實際上在任何經常變化的邏輯上都可以使用lua實現,配合c c 實現的底層介面服務,能夠大大降低系統的維護成本。下面對lua和c c 的互動呼叫做乙個例項分析 lua提供了api用於在c c 中構造...

lua與C互動函式

在lua中,lua堆疊就是乙個struct,堆疊索引的方式是正數也可以是負數,區別是 正數索引1永遠表示棧低,負數索引 1永遠表示棧頂。棧頂 4 1 3 2 2 3 1 4 棧底lua gettop lua state l 返回棧頂索引 即棧長度 lua settop lua state l,int...