Lua таблица в C ++ dll - PullRequest
       1

Lua таблица в C ++ dll

0 голосов
/ 31 августа 2018

Мой Lua-стол выглядит так:

qt={
    bid_number=20;
    ask_number=20;
    bid=table of 20 elements;
    ask=table of 20 elemens;
}

То есть #qt=0, Я хочу отправить эту таблицу в C ++ dll и работать с ее полями. Как мне это сделать? Пока я могу работать в C ++ dll только с такими таблицами, как tbl={a,b,c}. Я делаю это так:

static int forLua_SumArray (lua_State* L) {    // Get the length of the table (same as # operator in Lua)
    int n = luaL_len(L, 1);
    double sum = 0.0;

    // For each index from 1 to n, get the table value as a number and add to sum
    for (int i = 1; i <= n; ++i) {
      lua_rawgeti(L, 1, i);
      sum += lua_tonumber(L, -1);
      lua_pop(L, 1);
    }

    lua_pushnumber(L, sum);
    return 1; 
}

Помогите, пожалуйста, начать работать с более сложными таблицами.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Преобразовать значение Lua по заданному допустимому индексу в строку C. Значение Lua должно быть строкой или числом, в противном случае функция возвращает ноль.

const char *lua_tolstring (lua_State *L, int index, size_t *len);

затем lua_tostring также изменяет фактическое значение в стеке на строку. luaL_checkstring звонки lua_tolstring.

0 голосов
/ 31 августа 2018

В прошлом я использовал sol2 https://github.com/ThePhD/sol2, чтобы сделать сложности в интерфейсах Lua / C ++ намного проще.

Mike

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...