Lua C API: 使用lua_pushcfunction推送函数不起作用。

它只是崩溃了,我需要你解决它。提前感谢。

typedef lua_CFunction luaFunc;

int Caller(lua_State* luaVM)
    luaFunc Func = lua_tocfunction(luaVM, 1);

    lua_pushcfunction(luaVM, Func);
    lua_call(luaVM, 0, 0);
    return 0;
}

在 Lua 中应该像这样:

function Caller(f)
    f()
end
点赞
用户107090
用户107090

Lua 代码的等效代码如下:

function Caller(f)
    f()
end

int Caller(lua_State* luaVM)
    lua_call(luaVM, 0, 0);
    return 0;
}
2013-09-30 00:20:11
用户340917
用户340917

在 C 函数中

{
    ...
    lua_getglobal(luaVM, "Caller");
    lua_pushcfunction(luaVM, CallbackFunction)
    lua_call(luaVM, 0, 0)
    ...
}

int CallbackFunction(lua_State* luaVM)
{
    ...
}
2013-09-30 02:46:04