Тестирую dll, привязанную к Луа.
Происходит загадочная вещь, прошу помочь.
Привожу код внутри dll
Этот цикл работает правильно.
Пишет в консоль
1
2
3
4
Пишет
1
2
Путём опытов я понял, что проблема в функции lua_rawgeti(L, -2, i); Она обрывает цикл на второй итерации.
Почему?
П.С. Если это важно, то всё это происходит внутри обработки колбека OnQuote
Происходит загадочная вещь, прошу помочь.
Привожу код внутри dll
Этот цикл работает правильно.
Код |
---|
for (int i = 1; i<=4; i++){ printf("%i", i); printf("\n"); //lua_rawgeti(L, -2, i); закомментировано //lua_getfield(L, -1, "quantity"); закомментировано //auto q = lua_tonumber(L, -1); закомментировано } |
1
2
3
4
Код |
---|
А этот цикл обрывается на второй итерации: for (int i = 1; i<=4; i++){ printf("%i", i); printf("\n"); lua_rawgeti(L, -2, i); lua_getfield(L, -1, "quantity"); auto q = lua_tonumber(L, -1); } |
1
2
Путём опытов я понял, что проблема в функции lua_rawgeti(L, -2, i); Она обрывает цикл на второй итерации.
Почему?
П.С. Если это важно, то всё это происходит внутри обработки колбека OnQuote