Вероятная проблема заключается в том, что зарегистрировано luaL_loadfile()
, чтобы вернуть те же значения, что и lua_load()
, или еще один код ошибки. В любом случае возвращаемое значение равно int
, где 0 означает успех, а ненулевое значение - код ошибки.
Итак, тест luaL_loadfile(...) == NULL
равен true, если файл был загружен, но код вызывает ошибку и возвращается.
Функция lua_pcall()
также возвращает код состояния, и вы также можете проверить это.
В противном случае, скрипт, как показано действительно создает глобальную переменную, и lua_getglobal()
бы получить, что в стек, где она может быть проверена с lua_isstring()
, или, возможно, более полезно позволить вам вернуть его значение, если оно достаточно нитевидные с lua_tostring()
, Последняя функция вернет либо const char *
, указывая на строку с нулевым завершением, либо NULL, если значение в индексе стека не может быть преобразовано в строку. См. Справочное руководство Lua как связанное с остальными деталями и предостережение об использовании lua_tostring()
внутри цикла.
Редактировать: Я добавил лучшие ссылки на руководство в нескольких местах.
Пойдет по этой тропе и обновит вас по результату, спасибо! : D – krebstar
Ну, похоже, вы были на правильном пути .. luaL_loadfile возвращает 6 .. Что это значит? Где я могу найти список кодов ошибок для этого? Спасибо .. – krebstar
nvm, понял это, спасибо вам :) Я пропустил неправильное имя файла и не смог его открыть .. Нужно полное имя пути .. – krebstar