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 ... есть идеи почему?