AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lua Funktion aus Delphi aufrufen

Ein Thema von Najo · begonnen am 13. Jun 2009 · letzter Beitrag vom 13. Jun 2009
Antwort Antwort
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
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Lua Funktion aus Delphi aufrufen

  Alt 13. Jun 2009, 10:18
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
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Najo

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

Re: Lua Funktion aus Delphi aufrufen

  Alt 13. Jun 2009, 10:43
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 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