Тема: Создать новый стек Lua
Час от часу не легче...
Есть такой простой код:
В квике Lua-скрипт:
function main()
Quik_Lua_connector= require("Quil_Lua_connector_work_TEST")
Quik_Lua_connector.TestFunc_run_WinConsole_for_dll()
Quik_Lua_connector.run_Cpp()
-------------------------
while not stopped do
sleep(1)
end
-------------------------
end
В С++ соответственно:
static int run_Cpp(lua_State* Lua_stek)
{
lua_State* L = luaL_newstate();
if (L == NULL)
{
std::cout << "L == NULL" << std::endl; //Ошибки нет.
}
lua_getglobal(L, "CreateDataSource");
lua_pushstring(L, "TQBR");
lua_pushstring(L, "GAZP");
lua_pushnumber(L, "INTERVAL_MN1");
std::cout << "Size_stack:" << lua_gettop(L) << std::endl; //Размер 4 - как и должно быть
int status_lua_pcall = lua_pcall(L, 3, 2, 0);
if(status_lua_pcall != 0)
{
std::cout<<"Error"<<std::endl; //attempt to call a nil value
}
}
То есть я хочу использовать не автоматически созданный при вызове функции run_Cpp - Lua стек, а создать свой новый - через luaL_newstate.
Стек создается, он не равен нулю.
В стек добавляются элементы - то есть он рабочий.
Но, как я вызываю lua_pcall - то lua_pcall завершается ошибкой "attempt to call a nil value".
Со автоматически созданный стеком Lua_stek - никаких ошибок нет, все работает.
Что это может быть ?