2

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

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
4

2 回答 2

3

相当于 Lua 代码

function Caller(f)
    f()
end

int Caller(lua_State* luaVM)    
    lua_call(luaVM, 0, 0);
    return 0;
}
于 2013-09-30T00:20:11.487 回答
0

我还没有测试,但它应该如下所示:
在 c 函数中

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

int CallbackFunction(lua_State* luaVM)
{
    ...
}
于 2013-09-30T02:46:04.273 回答