Я пытаюсь использовать lua в своем приложении, но при попытке загрузить скрипт с помощью lua_loadBuffer появляется сообщение об ошибке.Ошибка синтаксиса при загрузке сценария lua
LuaContext := lua_newstate(@Alloc, nil);
try
luaL_openlibs(LuaContext);
s := 'print("hi")';
lua_register(LuaContext, 'print', @print_func);
if luaL_loadbuffer(LuaContext, PChar(s), Length(s), PChar('sample1')) <> 0 then
begin
raise Exception.Create(lua_tostring(LuaContext, -1)); //<- I get the following error message here: [string "sample1"]:1: syntax error
end;
if lua_pcall(LuaContext, 0, 0, 0) <> 0 then
Exception.Create('');
except
Debugln('Error: ' + lua_tostring(LuaContext, -1));
end;
Афаик код lua действительно, не так ли? Просто «синтаксическая ошибка» не очень описательна, и у меня нет опыта с lua, я даже не знаю, где искать ошибки.
Попробуйте 'var s: AnsiString;' –
@EgorSkriptunoff Спасибо, это сработало. Вы можете отправить ответ, чтобы я мог его принять. – Mystery
Егор в основном комментирует; ответы имеют ограничение по длине, которое он обычно находится под;). Не стесняйтесь публиковать и принимать свой собственный ответ. –