Вызов простой функции Lua из С++ ВСЕГДА приводит к ошибке:
Lua_code:
C++ код:
lua_pcall ВСЕГДА завершается ошибкой "error in error handling"
Lua_code:
Код |
---|
function my_func_Lua() message("my_func_Lua") end function main() Quik_Lua_connector = require("Quik_Lua_connector_TEST") Quik_Lua_connector_TEST() ------------------------- while not stopped do sleep(1) end ------------------------- end |
C++ код:
Код |
---|
static int Quik_Lua_connector_TEST(lua_State* L) { std::cout << "Start" << std::endl; lua_getglobal(L, "my_func_Lua"); // получаю функцию //Проверяю, что на вершине стека находится теперь именно функция: int status_lua_is_function = lua_isfunction(L, -1); std::cout << "status_lua_is_function:" << status_lua_is_function << std::endl; //return 1 - значит Lua функция. int status = lua_pcall(L, 0, 0, 0); //Вызываю функцию без аргументов и бещ возвратного значения. if (status != 0) { std::cout << "error:" << lua_tostring(L, -1) << std::endl; //ОШИБКА: error in error handling } } |
lua_pcall ВСЕГДА завершается ошибкой "error in error handling"