lua_getglobal触发"attempt to index a thread value"错误

我完全不知道为什么会出现这个错误:即使全局变量不存在,它不应该返回nil吗?

然而,我可以确定以下事项:

  • 它是有效的lua_State
  • 它是主上下文,而不是线程;
  • 在同一个lua_State实例上,已经设置了名称为global的全局变量。
  • 我从未取消全局变量(因为我不知道如何做到这一点)。

当出现错误时,这是堆栈跟踪:

    ZTD3UI.exe!luaD_throw(lua_State * L,int errcode) line 135  C++
    ZTD3UI.exe!luaG_errormsg(lua_State * L) line 775 C++
    ZTD3UI.exe!luaG_runerror(lua_State * L,const char * fmt,...) line 789 C++
    ZTD3UI.exe!luaG_typeerror(lua_State * L,const TValue * o,const char * op) line 695    C++
    ZTD3UI.exe!luaV_finishget(lua_State * L,const TValue * t,TValue * key,StackValue * val,const TValue * slot) line 298    C++
    ZTD3UI.exe!auxgetstr(lua_State * L,const TValue * t,const char * k) line 646 C++
    ZTD3UI.exe!lua_getglobal(lua_State * L,const char * name)line 665 C++
点赞