Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lua Funktion aus Delphi aufrufen (https://www.delphipraxis.net/135565-lua-funktion-aus-delphi-aufrufen.html)

Najo 13. Jun 2009 10:11


Lua Funktion aus Delphi aufrufen
 
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

jaenicke 13. Jun 2009 10:18

Re: Lua Funktion aus Delphi aufrufen
 
Du benutzt eine relative Pfadangabe, das ist schonmal sehr schlecht. Und da der Fehlercode AFAIK heißt, dass die Datei nicht gelesen werden konnte (LUA_ERRFILE), könnte das der Fehler sein...
http://www.delphi-library.de/viewtopic.php?p=499701

Najo 13. Jun 2009 10:43

Re: Lua Funktion aus Delphi aufrufen
 
Hallo Jaenicke,

danke für deine Antwort. Ich habe es auch schon mit absolutem Pfad versucht. Es bleibt aber leider bei dem Status = 6. Kann es eine Inkompatibilität zu Delphi 2009 sein? Der 2. Parameter von luaL_loadfile ist vom Typ PWideChar.

Viele Grüße
Najo


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz