Я могу получить пользовательские данные из своего кода C++. Я хочу знать, могу ли я привести его к чему-то, чтобы я мог разыменовывать его поля и вызывать его методы, не проходя через Lua.
Другими словами:
Как только я получу пользовательские данные и положу их в стек Lua, как я могу получить их и использовать как объект определенного класса? Я знаю все интересующие меня поля и методы (их имена в Lua), но не обязательно все поля и методы, которые предоставляет базовая реализация пользовательских данных.
Есть ли способ как-то создать интерфейс, который бы знал смещения каждого члена?
Я считаю, что вопрос в том, как мне узнать смещение каждого члена в представлении Lua пользовательских данных, чтобы я мог создать структуру для приведения void *
, возвращаемого lua_touserdata
?