我最近将我的旧Lua5.1项目更新到了最新版本的库,但我在使用LUA_GLOBALSINDEX时遇到了问题-它变得未定义。我只在lua_getfield函数中使用它,如下所示:
void luastartgame(void)
{
if(startgamefunction.empty())return ;
lua_getfield(globalL, LUA_GLOBALSINDEX, startgamefunction.c_str()); // go to function in Lua script
int numArgs = 0;
int res = lua_pcall(globalL,numArgs,0, 0);
if(!luaresf(res)) // did the function call result in an error?
{
return;
}
}我试着用一些常量整数替换它--如果它不是0,我的程序就会崩溃。如果它是0,它就会奇怪地运行,并抱怨“试图访问nil值”。
我的源码是可用的here。我应该如何处理LUA_GLOBALSINDEX?我应该把它改成什么?
发布于 2012-06-19 09:38:41
使用lua_getglobal(globalL,startgamefunction.c_str()),它在5.1和5.2中都有效。
https://stackoverflow.com/questions/11093189
复制相似问题