1

Тема: Как вызвать у таблицы - "строковую переменную" ?

Чтобы вызвать метод у таблицы, к примеру метод Size() у таблицы CreateDataSource - нужно сделать так:

       //index - номер таблицы в стеке Lua

    lua_getfield(L, index, "Size");            //"Извлекаем" из "таблицы" функцию отвечающую за возвращения размера этой таблицы.
    lua_pushvalue(L, index);                //Помещаем копию обьекта таблицы на вершину стека.

    int status_lua_pcall = lua_pcall(L, 1, 1, 0);      //Вызываем функцию Size 

А как сделать тоже самое, но не с методом таблицы, а со строковым полем ? К примеру, как в getQuoteLevel2: [url]https://luaq.ru/getQuoteLevel2.html[/url]

У таблицы есть поле bid_count/bid_count, но такой же код не прокатывает:

    lua_getfield(L, index, "bid_count");            //"Извлекаем" из "таблицы" функцию отвечающую за возвращения размера этой таблицы.
    lua_pushvalue(L, index);                //Помещаем копию обьекта таблицы на вершину стека.

    int status_lua_pcall = lua_pcall(L, 1, 1, 0);      //Вызываем функцию Size 

Ошибка: attempt to call a string value

2

Re: Как вызвать у таблицы - "строковую переменную" ?

Вы вызываете обычным способом функцию getQuoteLevel2
После возврата получаете на стеке таблицу, в которой  есть полу с именем "bid_count". Считываете его как обычное поле из таблицы.