1
我有奇怪的問題,從C++調用Lua函數。 我在Lua:lua_pcall我的籌碼看起來從C++調用Lua函數,缺少參數
Player =
{
Number = 0.43,
Text = "SomeText",
}
function Player:Func(a, b)
return (a * b);
end
前:
表
功能
我調用這個函數有:
lua_pcall(L, 2, 1, 0)
而且我從Lua得到錯誤:
試圖對當地 'B'(一個零值)
執行算術當我在Lua腳本改變
return (a * b);
到
return a;
沒有錯誤,但來自lua_tonumber(L,-1);我得到值4(我的第二個參數在C:/),所以看起來我的第二個參數在C中是第一個在Lua中。 你知道我在代碼中犯了什麼錯誤嗎?
如何構建堆棧:
lua_getglobal (L, "Player");
lua_pushstring(L, "Func");
lua_gettable(L, -2);
lua_pushnumber(L, 3.0);
lua_pushnumber(L, 4.0);
顯然你的籌碼是不是你認爲它是。那麼爲什麼你不向我們展示設置堆棧的代碼? –
你可能需要推一個隱藏的'this'指針(或者相當於Lua)嗎? –