Как я могу создать таблицу в LUA, а затем добавлять значения из C API?
Вопрос
Вот что у меня так далеко ... это создает глобальный стол под названием «мод», но я не могу добавить индексы к столу ...
lua_newtable(L);
lua_setglobal(L,"mod");
Решение
То руководство говорит:
void lua_setfield (lua_State *L, int index, const char *k);
Делает эквивалент
t[k] = v
, кудаt
это значение по данному действительному индексу иv
это значение в верхней части стека.Эта функция всплывает значение из стека.
Итак, точнее: толкайте все, что вы хотите добавить в стек, затем позвоните lua_setfield
. Отказ Например:
lua_pushnumber( L, 42 );
lua_setfield( L, -2, "answer_to_life_universe_and_rest" )
Это вставляет поле «Ответ_О_life ...» со значением 42
в стол.
Не связан с StackOverflow