Ich seh vermutlich mal wieder den Baum vor lauter Wälder nicht.
Ich versuche hiermit mein Programm durch Lua dynamischer zu machen.
Code: Alles auswählen
LuaContext := lua_newstate(@Alloc, nil);
try
luaL_openlibs(LuaContext);
s := 'print("hi")';
lua_register(LuaContext, 'print', @print_func); //printfunc ist ein cdecl methode, die einfach an Debugln weiterreicht
if luaL_loadbuffer(LuaContext, PChar(s), Length(s), PChar('sample1')) <> 0 then
begin
raise Exception.Create(lua_tostring(LuaContext, -1)); //<- hier kommt folgende Fehlermeldung [string "sample1"]:1: syntax error , also geladener string "sample1", zeile 1: syntax error
end;
if lua_pcall(LuaContext, 0, 0, 0) <> 0 then
Exception.Create('');
except
Debugln('Error: ' + lua_tostring(LuaContext, -1));
end;
eigentlich müsste doch "print("hi")" gültiger Lua code sein, oder?
Ich habe mich an den Beispielen aus der Gitrepo orientiert.
Edit: Hab den Fehler gefunden. Wieso auch immer, die Variable s war als TDomString definiert(Widestring).
MFG
Komoluna