Вопросы по теме 'lua-api'

Как создавать вложенные таблицы Lua с помощью C API
Я хочу создать таблицу, например myTable = { [0] = { ["a"] = 4, ["b"] = 2 }, [1] = { ["a"] = 13, ["b"] = 37 } } используя C API? Мой текущий подход lua_createtable(L, 0, 2); int c = lua_gettop(L); lua_pushstring(L, "a");...
16332 просмотров
schedule 21.04.2023

Ограничение времени выполнения скрипта Lua, вызываемого из C API
luaL_loadfile(mState, path.c_str()); lua_pcall(mState, 0, 0, 0); Есть ли способ установить ограничение времени выполнения (скажем, 10-20 секунд) для этих двух операторов С++, которые загружают, а затем выполняют файл lua? Поскольку файлу Lua...
4689 просмотров
schedule 28.10.2023

Как перебрать таблицу, измененную с помощью luaL_ref и luaL_unref?
Я использую C API Lua для расширения Lua. В моем модуле я хочу заполнить таблицу, используя luaL_ref , и удалить поля, используя luaL_unref . Я также хочу иметь возможность перебирать эту таблицу, надеюсь, используя lua_next . Итерация по...
922 просмотров
schedule 24.09.2023

Lua C API: вставка элементов таблицы вызывает сбой утверждения отладки
Функция успешно возвращается, и я могу использовать значения из таблицы, но появляется сообщение об ошибке «Отладка не удалось», и это конец. Я знаю, что проблема с assert находится в цикле for, но точно не знаю, как это исправить. Заранее спасибо....
286 просмотров
schedule 06.05.2022

Получение «указателя» на функцию Lua, хранящуюся в C
В Lua C API я могу сохранить число или строку из стека с помощью lua_tostring() . Как «ссылка» (если это корректный термин) на функцию Lua может быть передана в C через Lua API? Таким образом, его можно вызвать позже из C с помощью lua_call() ,...
3851 просмотров
schedule 27.02.2024

Реестр Lua в необходимых модулях
Ключи, установленные в реестре временного состояния, доступ к которому осуществляется в модуле int luaopen_foo(lua_State*) , приняты в реестре вызывающего состояния? Например, допустим, у нас есть этот модуль: int luaopen_foo(lua_State* state)...
108 просмотров
schedule 20.08.2022

Как я могу получить список всех имен таблиц в сценарии .lua, используя Lua C API?
У меня есть файл lua, который выглядит так: tableA = {…} tableB = {…} tableC = {…} Я хочу получить std::vector, который будет содержать имена всех таблиц, определенных в файле: {tableA, tableB, tableC} Как я могу сделать это с помощью Lua C...
664 просмотров
schedule 07.02.2023

Lua: прочитать параметр таблицы из вызова функции c
Я действительно не уверен в обработке таблиц в C API Lua. Интерфейс, который я сейчас разрабатываю, требует, чтобы я читал содержимое таблицы, переданной моей функции c: пример.lua: myVector2 = {["x"]=20, ["y"]=30} setSomePosition(myVector2)...
583 просмотров
schedule 19.09.2022

lua_Integer и lua_createtable (ограничение размера таблицы)
В Lua 5.3 связанные с таблицами функции в C API получают и возвращают lua_Integer . void lua_rawgeti (lua_State *L, int idx, lua_Integer n); void lua_rawseti (lua_State *L, int idx, lua_Integer n); lua_Integer luaL_len (lua_State *L, int index);...
893 просмотров
schedule 21.05.2023

Аргументы Lua в неправильном месте памяти
При разборе переменных из lua lua ведет себя странно. C++: int LuaManager::SetTimer(lua_State *pLua) { if (!lua_isstring(pLua, 0)) throw "expected: string"; if (!lua_isnumber(pLua, 1)) throw "expected: number"; std::string callback...
134 просмотров
schedule 13.06.2023

Извлечь пользовательские данные из таблицы, используя lua c API
Я использую lua c api для зацикливания переменных в таблице, например луа скрипт: array = {0,1,2,3} луа с API lua_getglobal(l, "array"); if(lua_isnil(l, -1)) { } lua_pushnil(l); while(lua_next(l, -2)) { int...
664 просмотров
schedule 09.03.2023

обнаружено несколько виртуальных машин Lua
Я использую бинарный файл Lua52.exe, который вы можете скачать с сайта Lua. Я хочу расширить его функциональность с помощью DLL, которую я пишу. Поэтому я написал DLL, включив исходный код Lua в свой проект VS DLL. Этот код ниже. Когда я делаю...
1983 просмотров
schedule 25.04.2022

Сохранение структуры C в реестре Lua
Когда я интегрирую Lua в свою программу на C, я использую указатель static на структуру C для хранения объекта, который мне нужно повторно использовать в методах, которые я привязываю к состоянию Lua. Однако это не работает, когда я отделяю свою...
795 просмотров
schedule 12.12.2023

Lua C API Как определить, была ли функция вызвана как член класса или просто функция из таблицы?
У меня есть приложение C++, которое использует Lua C API. Я объявил глобальную таблицу через lua api: lua_newtable(L); lua_pushstring(L, "someLuaFunc"); lua_pushcfunction(L, &someCFunc); lua_settable(L, -3); lua_setglobal(L, "table1");...
302 просмотров
schedule 30.10.2023

Песочница Lua _ENV с личной базовой библиотекой (require, assert и т. д.)
Луа 5.3.2 У меня есть служба, написанная на Lua/C, которая выполняет файлы lua в том же Lua_State. Мне нужно предоставить все стандартные библиотеки для среды выполнения файлов. Самое простое - запускать файлы так: loadfile(file_path,...
357 просмотров
schedule 06.05.2024

Как зарегистрировать конструктор класса C++ в пользовательских данных Lua и использовать его по умолчанию
Используя Lua C API, я зарегистрировал простой класс Object в Lua, например: // My C++ Object class class Object { private: double x; public: Object(double x) : x(x){} }; // Create and return instance of Object class to Lua int...
1599 просмотров
schedule 24.05.2024

Вызов функции, возвращаемой lua-скриптом из C
Учитывая файл lua, например -- foo.lua return function (i) return i end Как я могу загрузить этот файл с помощью C API и вызвать возвращаемую функцию? Мне просто нужны вызовы функций, начинающиеся с luaL_loadfile / luaL_dostring .
753 просмотров
schedule 18.02.2023

Не зная реализации пользовательских данных, могу ли я использовать его поля изнутри С++?
Я могу получить пользовательские данные из своего кода C++. Я хочу знать, могу ли я привести его к чему-то, чтобы я мог разыменовывать его поля и вызывать его методы, не проходя через Lua. Другими словами: Как только я получу пользовательские...
71 просмотров
schedule 10.02.2023

как создать многомерный массив в lua с lau C api
У меня есть запрос о связывании языков lua и c. пример использования lua) a[1].b.c[1].d = 1 a[1].b.c[2].d = 2 a[2].b.c[1].d = 3 a[2].b.c[2].d = 4 Мне интересно, как создать это с помощью lua C api. Это код, который я использовал в C...
59 просмотров
schedule 30.06.2023

LNK2019 при использовании Lua из пакета NuGet
Я пытаюсь создать новый проект, используя библиотеку lua. До сих пор я всегда использовал для этого NuGet Lua, но теперь он внезапно перестал работать. Весь мой код таков: #include <iostream> #include <lua.h> #include...
23 просмотров
schedule 30.06.2023