![]() |
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 |
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...
![]() |
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 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz