1 (2022-10-07 13:39:25 отредактировано Serg_)

Тема: Вызвать Lua функцию из С++ c передачей callback`а

Подскажите пожалуйста, есть ли пример, как вызывать функцию к примеру SetUpdateCallback с передачей в нее параметров ?

Ну то есть, вот аналог код в Lua:

local my_table_= CreateDataSource(code_class_, code_paper_, interval)

my_table_:SetUpdateCallback(function(idx)my_callback_(my_table_, code_class_, code_paper_, interval) end)


function my_callback_(my_table_, code_class, code_paper, interval)

...код

end

Вот как его изобразить в C++ ?

//В L - на вершине стека уже находится таблица возвращенная CreateDataSource.

lua_getfield(L, -1, "SetUpdateCallback");          //"Извлекаем" на вершину стека из "таблицы" функцию SetUpdateCallback.

//Теперь нужно поместить в стек последовательно параметры функции SetUpdateCallback, но тут уже не могу понять:
//- как поместить function(idx)
//- как поместить my_callback_

Не могу понять, где должна быть объявлена моя функция callback ? В Lua скрипте и тогда мне ее нужно просто получить через Lua_global или же в C++ ?

2 (2022-10-08 09:30:51 отредактировано swerg)

Re: Вызвать Lua функцию из С++ c передачей callback`а

[url]https://www.lua.org/pil/26.1.html[/url]

См. lua_pushcfunction()