Как встроить Lua в C++ через SWIG
Вопрос
В настоящее время у меня есть набор оболочек SWIG для моих классов, и все это собирается.Я могу создать виртуальную машину Lua и загрузить свои оболочки, но в этот момент я в замешательстве.Поиск в Google подсказывает мне, как вставить C++ в Lua в Swig, но не говорит, как вставить Lua в C++.
На самом деле все, что я хочу сделать, это создать экземпляр объекта lua и передать ему указатель на мой основной объект игрового движка, оттуда я могу управлять
Решение
Взгляните на книгу «Программирование на Lua», там есть раздел, посвященный API Луа C.
Для вызова функций Lua используйте lua_pcall, что эквивалентно lua_call (у него есть короткий пример), за исключением того, что он обнаруживает ошибки времени выполнения Lua.
Вы, должно быть, уже загрузили и запустили скрипт один раз (например, используя. luaL_dofile), поскольку первым шагом скрипта является определение функций, которые вы будете вызывать.Когда он вернется, вы можете получить доступ к функциям, определенным сценарием, с помощью lua_getglobal.