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