Форум программистов, компьютерный форум CyberForum.ru

Runtime error при открытии lua-скрипта - C++

Восстановить пароль Регистрация
 
Chainik228
0 / 0 / 1
Регистрация: 18.10.2015
Сообщений: 44
01.08.2016, 12:32     Runtime error при открытии lua-скрипта #1
Всем доброго времени суток.

Есть функция, задача которой прочитать lua-скрипт и перенести значения параметров из него в структуру.

Кликните здесь для просмотра всего текста

Код немного условный, потому что инициализация, подключение библиотек и деинициализация script_LuaState вынесены в отдельные функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
script_LuaState = luaL_newstate();
luaL_openlibs(script_LuaState);
 
std::string file = system_GetDirectory(DIRECTORY_USERROOT) + "settings";
int top  = lua_gettop(script_LuaState);
    
if (luaL_dofile(script_LuaState, file.c_str()))
{
    logging_PrintError("settings parse error (%d|%d).", luaL_loadfile(script_LuaState, file.c_str()), lua_pcall(script_LuaState, 0, LUA_MULTRET, 0));
    return;
}
 
lua_getglobal(script_LuaState, "main");
    
lua_getfield(script_LuaState, -1, "firstrun");
engine_MainSettings.FirstRun = lua_tonumber(script_LuaState, -1)
                                   ? true : false;
lua_pop(script_LuaState, 1);
    
lua_settop(script_LuaState, top);
 
lua_close(script_LuaState);


При отладке, функция выполняет условие с luaL_dofile (...), потому что lua_pcall (...) возвращает 2 (runtime error). Я так и не смог понять почему происходит ошибка со средой, но мне кажется, что я забыл что-то проделать со script_LuaState при инициализации.

ОС: Debian. Версия Lua: 5.3.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2016, 12:32     Runtime error при открытии lua-скрипта
Посмотрите здесь:

C++ Builder Скачал исходник, при открытии проекта выдается сообщение:Error Reading Form
Runtime Error C++
C++ Почему runtime error
runtime error C++
C++ Укажите на ошибку - при запуске runtime error
C++ Runtime Error, Signal 6
C++ COM Runtime error в DllSurrogate
C++ Runtime error при выборе одного из пунктов программы
Runtime Error C++
Runtime error при выводе C++
Shared_ptr runtime error C++
Runtime error #3 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
01.08.2016, 14:48     Runtime error при открытии lua-скрипта #2
Сначала написал было:
"А в самом settings ошибки-то нет? Он компилируется и выполняется standalone-интерпретатором Lua?"
А потом заметил, что загрузка файла и вызов происходят среди аргументов функции, порядок вычисления которых не определён (но обычно справа налево).
Chainik228
0 / 0 / 1
Регистрация: 18.10.2015
Сообщений: 44
01.08.2016, 15:01  [ТС]     Runtime error при открытии lua-скрипта #3
То есть, необходимо изменить порядок вычисления?
Честно, я ориентировался по руководствам с сайта.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
01.08.2016, 15:32     Runtime error при открытии lua-скрипта #4
Цитата Сообщение от Chainik228 Посмотреть сообщение
То есть, необходимо изменить порядок вычисления?
То есть, операции, которые следует выполнять в определённом порядке, не должны быть аргументами функции. Надо сначала вычислить и запомнить результаты, затем вывести. К тому же, если loadfile вернёт ошибку, pcall всё равно уже нечего будет вызывать.

Но это соображение не отменяет предыдущей мысли о проверке settings в интерпретаторе.
Chainik228
0 / 0 / 1
Регистрация: 18.10.2015
Сообщений: 44
01.08.2016, 17:10  [ТС]     Runtime error при открытии lua-скрипта #5
Попробовал в интерпретаторе. Проблема именно с файлом "settings".

Пошел читать руководство по скриптам.
Yandex
Объявления
01.08.2016, 17:10     Runtime error при открытии lua-скрипта
Ответ Создать тему
Опции темы

Текущее время: 06:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru