c ++ 11 — вызов функций Lua из переполнения стека

Я использую последнюю версию LuaJit и мне нужна помощь для начала работы. Что мне нужно, так это иметь набор функций, доступных для среды Lua, которые могут быть переопределены внутри скриптов для запуска предоставленного пользователем кода. Эти функции затем будут вызываться во время событий set из C ++.

Например, когда пользователь нажимает клавишу TAB, он вызывает функцию из среды lua, например, OnScoreboardOpen (), а когда пользователь отпускает клавишу TAB, он вызывает соответствующую функцию OnScoreboardClose (), эти функции могут быть присоединены к метаметоду. как Game или GM.

Может ли кто-нибудь указать мне на некоторые учебники или примеры кода, показывающие, как это можно сделать?
Большое спасибо за уделенное время.

1

Решение

В основном вы используете эти две функции: lua_pushXXX и lua_pcall

Зависит от того, как вы называете функцию LUA, это может быть простой метод функции или объекта.
то есть

function OnScoreboardOpen()
end

ИЛИ ЖЕ

function Game:OnScoreboardOpen()
end

Использовать обычную функцию относительно просто:

// TODO: sanity check
lua_getglobal(L, name);
lua_pushnumber(L,123);
lua_pcall(...);
2

Другие решения


По вопросам рекламы [email protected]