初學lua,遇到註冊c/c++互動函式問題
在lua與c/c++互動時,c/c++的註冊lua函式若是乙個有返回型別(壓棧)而不是獲取型別的時候應該返回1而不是返回0,否則會出現在lua中值為nil(空)
不太明白為什麼事這樣,如果有知道的大神,麻煩講解下
如:應該是
1
2
3
4
5
6
int
createclass(lua_state *l)
而不是1
2
3
4
5
6
int
createclass(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...