Lua получить и выполнить функцию из C - PullRequest
2 голосов
/ 06 апреля 2011

Если у меня есть такой код lua:

doSomething(function()
                print("Hello!")
            end)

Как я могу сделать так, чтобы с помощью C API я создал функцию C Lua для doSomething, которая затем может сохранить переданную ей функцию для выполнения на более поздний срок?

1 Ответ

3 голосов
/ 06 апреля 2011

Это просто обычная запись в стеке. Проверьте его с помощью lua_isfunction(), затем используйте luaL_ref() для создания ссылки (чтобы сборщик мусора не украл его), а затем, возможно, lua_topointer() для сохранения указателя на этот объект, зависит от того, что вы хотите с ним делать .

Когда вы закончите, это просто luaL_unref().

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