Хотелось бы подробного объяснения.
Как мне использовать исходный код Lua для создания интерпретатора Lua, который будет выполнять заданные блоки кода Lua? Блоки кода Lua будут отправлены как char
.
Хотелось бы подробного объяснения.
Как мне использовать исходный код Lua для создания интерпретатора Lua, который будет выполнять заданные блоки кода Lua? Блоки кода Lua будут отправлены как char
.
вам нужен вызов lua_load
для компиляции блока кода, а затем вызов lua_call
для его запуска. В качестве действительно хорошего примера того, как это делается, взгляните на пример, представленный здесь:.
Первым аргументом любой API-функции Lua всегда является состояние интерпретатора, которое является возвращаемым значением lua_open()
.
В примере фактически используется luaL_loadbuffer
, который оборачивает вызов lua_load
, чтобы немного упростить компиляцию строки c. вы можете прочитать, как его использовать, в главе справочного руководства, посвященной вспомогательному Библиотека. Это оставляет lua чанк в верхней части стека 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.