EDIT 2:Lua C question
** Я хотел бы получить подробное объяснение. Я NOOB для языка C.
Как использовать исходный код Lua для создания Lua-интерпретатора, который будет выполнять заданные блоки кода Lua? Блоки кода Lua будут отправлены как char
.
EDIT 2:Lua C question
** Я хотел бы получить подробное объяснение. Я NOOB для языка C.
Как использовать исходный код Lua для создания Lua-интерпретатора, который будет выполнять заданные блоки кода Lua? Блоки кода Lua будут отправлены как char
.
вам нужно позвонить в lua_load
скомпилировать блок кода, а затем вызов lua_call
для его запуска. Для действительно хорошего примера того, как это делается, взгляните на example provided here:.
Первый аргумент любой функции апи Lua всегда является состояние интерпретатора, который является возвращаемым значением lua_open()
пример фактически использует luaL_loadbuffer
который оборачивает вызов lua_load
сделать компиляцию A C натянуть немного проще. вы можете прочитать, как использовать его в главе справочного руководства, которая охватывает The Auxiliary Library. Это оставляет lua chunk в верхней части стека lua, который затем может быть вызван с помощью lua_call
, но в этом примере используется lua_pcall
, что обеспечивает некоторое улавливание ошибок. поскольку кусок, который вы только что скомпилировали, не принимает никаких аргументов (это кусок не функция) и не имеет никакого возвращаемого значения, которое вам было бы интересно, и вы хотите увидеть ошибку точно так, как она была создана, все аргументы, кроме первого (который всегда является состоянием интерпретатора lua), могут быть нулями.
http://www.lua.org/manual/2.1/subsection3_7_6.html
http://lua-users.org/lists/lua-l/2006-10/msg00405.html пример
http://www.debian-administration.org/articles/264 C++, такой же тип вещь
Это покажет вам, как позвонить Lua из C.
Спасибо. Я только что узнал что-то новое :) – 2010-11-24 22:06:12
Выглядит хорошо. Я попробую – 2010-11-24 22:03:45