C++ 需要在Visual Studio 2017 C+中更新Lua代码的帮助吗+;代码

C++ 需要在Visual Studio 2017 C+中更新Lua代码的帮助吗+;代码,c++,lua,visual-studio-2017,C++,Lua,Visual Studio 2017,我有这段代码,在2005年使用过,但Lua似乎已经改变了,我承认我很困惑 bool SLua::getValue (const char *table, const char *key, int *result){ lua_getglobal (state_, table); lua_pushstring (state_, key); lua_gettable (state_, -2); *result = lua_tonumber (state_, -1); lua_pop (stat

我有这段代码,在2005年使用过,但Lua似乎已经改变了,我承认我很困惑

bool SLua::getValue (const char *table, const char *key, int  *result){

lua_getglobal (state_, table);
lua_pushstring (state_, key);
lua_gettable (state_, -2); 

*result = lua_tonumber (state_, -1);
lua_pop (state_, 2);

return true; }
我编译的应用程序每次在lua_gettable上崩溃(state_2); 这是因为Lua的变化吗?我已经在别处用lua_newstate()交换了lua_open()


谢谢你的帮助

这看起来很好。也许
lua\u getglobal
失败了?使用F10和F11前进,调试器似乎并不介意lua\u getglobal中的任何内容。只有当我到达lua_gettable(状态-2)时;它以“程序“[12308]src.exe”退出,代码为3(0x3)。”没有调试信息,即使我用/DEBUG:FULL和/PDB:FILENAME编译并链接了lua3.5.4.dll。它只是出口。出于某种原因,也不可能进入lua_gettable。我的意思是,
lua_getglobal
是否在lua堆栈上保留了nil?我在调试期间没有成功获取堆栈值。使用了lua_stacktrace()但仍然没有任何结果。添加
assert(lua_istable(state,-1))
lua\u getglobal
之后。