库指南 |
|
如果它不反映社区习惯,请随意修改。此页面尚未完成。
这是常用的方法。在调用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 文档中的命名空间。