當前位置:編程學習大全網 - 網站源碼 - delphi 怎麽獲取lua 函數的返回值

delphi 怎麽獲取lua 函數的返回值

Lua 與 delphi 的互動,通常是在 delphi 中加載 Lua 的庫,比如 Lua for delphi 等。

假設用 Lua 編寫了壹個函數(保存在 lua_GetColor.lua 文件中):

function?nogi_GetColor(nR,nG,nB)?

if?nR?<=?25?and?nG?<=?25?and?nB?<=?25?then?--?取出25以下黑色?

return?1;?

end;?

return?0;?

end

那麽調用上面 Lua 函數的代碼:

uses?LUA,?LUALIB;?//引入LUA庫?

function?lua_CheckColor(r,g,b:Integer):Boolean;?

var?

Lua?:?TLua;?

begin?

Lua?:=?TLua.Create;

luaopen_debug(LuaInstance);?//如果要使用debug庫?

luaopen_math(LuaInstance);//?如果要使用math庫?不然就會attempt?to?index?global?'math'?(a?nil?value)?

luaopen_os(LuaInstance);?

luaopen_string(LuaInstance);?

luaopen_table(LuaInstance);?

Lua.DoFile('lua_GetColor.lua');?

lua_getglobal(Lua.LuaInstance,'nogi_GetColor');?

lua_pushnumber(Lua.LuaInstance,?r);?//將腳本中add函數使用的參數壓棧?

lua_pushnumber(Lua.LuaInstance,?g);?//將腳本中add函數使用的參數壓棧?

lua_pushnumber(Lua.LuaInstance,?b);?//將腳本中add函數使用的參數壓棧?

lua_pcall(Lua.LuaInstance,?3,?1,0)?;?

Result?:=?(lua_toInteger(Lua.LuaInstance,-1)?=?1);?

Lua.Free;?

end;

  • 上一篇:翻倍黑馬的作品目錄
  • 下一篇:嬰兒吃什麽輔食更有營養?
  • copyright 2024編程學習大全網