我想在 Lua 中为脚本编写者设置几个函数,但是当调用这些函数时,我希望它们实际调用一个带有我定义的参数的函数。这可能看起来像:
卢阿:
foo1()
foo2()
C++:
int myFunction( lua_State * context )
{
int numArgs = lua_gettop( context );
int topOfStack = -3;
bool lightUserDataFlag = lua_islightuserdata( context, topOfStack );
if( lightUserDataFlag )
{
}
}
}
所以我对设置有点困惑。我正在尝试使用参数注册回调。这就是我到目前为止所拥有的,并且有些东西没有通过函数注册来保存参数;它似乎只保存我添加的最后一个参数。
void setupCallback()
{
lua_register( context, "foo1", Callback);
lua_pushlightuserdata( context, &value[0] );
lua_register( context, "foo2", Callback);
lua_pushlightuserdata( context, &value[1] );
}
当 lua 调用我的回调时,我总是看到 value[1],而不是 value[0]。我使用了注册回调然后添加表格的概念,但我不确定这会让我更进一步。
至于原因:我正在尝试抽象函数名称以使我们的 lua 程序员更容易编写代码,但这些只需要转换为相同的参数化函数。想想它通过传递一个参数来添加更改设置,但命名不同。
想法?