库指南 |
|
如果它不反映社区习惯,请随意修改。此页面尚未完成。
这是常用的方法。在调用luaL_register时,您可以用NULL替换"modulename"。require 函数将执行必要的操作,将模块注册到 package.loaded[modulename] 中,并且模块名称将易于更改。
static const luaL_reg register_module[] = {
{ "lua_function_name", c_function_name },
...
{ NULL, NULL }
};
LUALIB_API int luaopen_modulename(lua_State* L) {
luaL_register(L, "modulename", register_module);
return 1;
}
您应该使用luaL_newmetatable,它会根据名称推送元表,如果元表不存在,它会创建并推送它,以便您可以填充它。例如
if(luaL_newmetatable(L, "metatable name")){
/* fill it in */
}
您应该注意元表名称,以避免与其他模块发生冲突。例如,您可以使用 URI 作为 XML 文档中的命名空间。