Тема: Lua - Вызвать метод таблицы из C++
Хочу вызвать метод ds:O(99). Не могу понять как это сделать. Подскажите.
#
# Исполняем функцию CreateDataSource()
#
lua_getfield(lua, LUA_GLOBALSINDEX, "CreateDataSource");
lua_pushstring(lua, "TQBR");
lua_pushstring(lua, "ROSN");
lua_pushnumber(lua, 5); // 5-минутки
lua_call(lua, 3, 2);
lua_pop(lua, 1);
#
# Далее пробуем вызвать медок ds:O(99)
#
lua_getfield(lua, -1, "DS"); // создаем указатель на таблицу
lua_getfield(lua, -2, "O"); // получаем указатель на функцию ds:О()
lua_pushinteger(lua, 99); // загоняем в стек номер свечи
lua_insert(lua, -2);
lua_call(lua, 1, 1);
double Res = (double)lua_tonumber(lua, -1); // Получаем значение открытия свечи
lua_pop(lua, 1);
В результате Res = 1000.