stackoverflow.com/questions/6754778/...

аюсь вызвать функцию внутри файла lua с именем test2.lua. Это содержимое test2.lua:

function abc(path)
 t = {}
 table.insert(t, "a")
 return t
end

Как вы можете видеть, он принимает один вход и возвращает строку.

Вот мой код C Это довольно просто. Однако мой вызов getglobal для вызова этой функции не работает ... lua_getglobal говорит, что это не функция, когда я ее тестирую ... Есть причина, почему это так? Разве abc не должна быть глобальной функцией, возвращаемой внутри исходного файла? Почему тогда он находит ноль только для этого глобального?

L = lua_open();
luaL_openlibs(L);
luaL_loadfile(L, "src/test2.lua");

lua_getglobal(L, "abc");

lua_pushstring(L, "coollll");

int error = 0;
if ((error = lua_pcall(L, 1, 1, 0)) == 0)
{
    std::cout << "cool";
}

РЕДАКТИРОВАТЬ:

вызов lua_getglobal приводит к тому, что моя программа нарушает управление независимо от использования loadfile или dofile ... есть идеи почему?

аварийная программа lua_getglobal

Ответы на вопрос(2)

Ваш ответ на вопрос