小编Mic*_*ick的帖子

Lua使用元数据回调

我想在Lua中为脚本编写器设置一些函数,但是当调用这些函数时,我希望它们实际上使用我定义的参数调用单个函数.这可能看起来像:

LUA:

    foo1()
    foo2()
Run Code Online (Sandbox Code Playgroud)

C++:

int myFunction( lua_State * context )
{
    int numArgs = lua_gettop( context );
    int topOfStack = -3;
    bool lightUserDataFlag = lua_islightuserdata( context, topOfStack );

    if( lightUserDataFlag )
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

}

所以我对设置有点困惑.我试图用param注册回调.这就是我到目前为止所做的事情并没有通过函数注册保存参数; 它似乎只保存我添加的最后一个参数.

void setupCallback()
{
    lua_register( context, "foo1", Callback);
    lua_pushlightuserdata( context, &value[0] );
    lua_register( context, "foo2", Callback);
    lua_pushlightuserdata( context, &value[1] );
}
Run Code Online (Sandbox Code Playgroud)

当lua调用我的回调时,我总是看到值[1],而不是值[0].我玩了注册回调然后添加一个表的概念,但我不确定这会让我更进一步.

至于原因:我正在尝试抽象函数名称,以便为我们的lua程序员编写代码更容易,但那些只需要转换为相同的参数化函数.可以想象它通过传递单个参数添加更改设置,但命名方式不同.

思考?

c++ lua luabind

0
推荐指数
1
解决办法
1289
查看次数

标签 统计

c++ ×1

lua ×1

luabind ×1