Lua C вопрос - PullRequest
       28

Lua C вопрос

0 голосов
/ 25 ноября 2010

РЕДАКТИРОВАТЬ 2:

** Я хотел бы получить подробное объяснение. Я NOOB для языка C.

Как бы я использовал исходный код Lua для создания интерпретатора Lua, который будет выполнять заданные блоки кода Lua? Блоки кода Lua будут отправлены как char.

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

вам нужен вызов lua_load для компиляции блока кода, а затем вызов lua_call для его запуска. Для действительно хорошего примера того, как это делается, взгляните на приведенный здесь пример : .

Первым аргументом любой функции Lua api всегда является состояние интерпретатора, которое является возвращаемым значением lua_open()

В примере фактически используется luaL_loadbuffer, который оборачивает вызов в lua_load, чтобы немного упростить компиляцию строки c. Вы можете прочитать, как использовать его в главе справочного руководства, которая охватывает Вспомогательная библиотека . Это оставляет lua chunk в верхней части стека lua, который затем может быть вызван с помощью lua_call, но в примере используется lua_pcall, который обеспечивает немного отлова ошибок. поскольку только что скомпилированный блок не принимает никаких аргументов (это блок, а не функция) и не имеет никакого возвращаемого значения, которое вас заинтересует, и вы хотите увидеть ошибку в точности так, как она была создана, все аргументы помимо первого (который всегда является состоянием интерпретатора lua) могут быть нулями.

0 голосов
/ 25 ноября 2010

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 / article / 264 c ++, вещь того же типа

Это скажет вам, как позвонить Луа из C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...