Einzelnen Beitrag anzeigen

Najo

Registriert seit: 23. Mai 2009
9 Beiträge
 
#1

Lua Funktion aus Delphi aufrufen

  Alt 13. Jun 2009, 10:11
Hallo,

ich versuche Lua in Delphi zu benutzen und bin bei der Suche dazu über folgendes Beispiel gestoßen, dass bei mir leider nicht funktioniert:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  luastate : lua_state;
  status : integer;
  res : double;
begin
  LoadLuaLib();
  luastate := lual_NewState();
  //luaL_OpenLibs(luastate);


  // !!!! An dieser Stelle liefert Status immer den Wert 6
  status := luaL_loadfile(luastate, 'slc.lua');



  if status = 0 then begin
    status := lua_pcall(luastate, 0, 0, 0);
    if status = 0 then begin
      // Get the lua function we want to call
      lua_getglobal(luastate, 'add');

      // Put the parameters on the stack. In this case the
      // two values that will be added.
      lua_pushnumber(luastate, 2.5);
      lua_pushnumber(luastate, 10);

      // Call add with 2 parameters, 1 result
      status := lua_pcall(luastate, 2, 1, 0);
      if status = 0 then begin
        res := lua_tonumber(luastate, -1);
        WriteLn( Format('Add = %0.4g', [res]) );
        lua_pop(luastate, 1);
      end;
    end
  end;

  lua_Close(luastate);
  luastate := nil;
  FreeLuaLib();
end;

Beim Laden der Datei slc.lua wird als Status immer 6 zurückgegeben. Leider weiß ich nicht, was ich falsch gemacht habe und was der Status bedeutet. In der Datei slc.lua steht folgende:


function add(x, y)
return x + y
end


Weiß jemand was falsch ist?

Viele Dank
Najo
  Mit Zitat antworten Zitat