Вопросы по теме '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