Lua在执行lua_getglobal时崩溃。

所以我有这个问题。

在我的程序中,我有一个处理 lua 脚本的类(LuaScript)。但是,当调用 lua 函数时,我遇到了一些问题。我有一个叫做 callFunction 的 C++ 函数,它的工作方式如下:

void LuaScript::callFunction(const std::string& functionName)
{
     lua_getglobal(state, "update");

     if (lua_pcall(state, 0, 0, 0))
         printf("Error calling lua function: %s\n", lua_tostring(state, -1));
}

但它会崩溃(我在调试后发现),但它不会在第一次调用该函数时崩溃(这让我相信 lua_State* 在某种程度上是有问题的),通过更多的调试,我从 VS 中获得了这个错误消息:

Unhandled exception at 0x006CBADA (lua5.1.dll)
Access violation reading location 0xDDDDDDED.

FYI,我的 lua 源文件长这样:

function update()
    print("Hello")
end

我不知道该怎么办。

点赞