Lua 5.3注册C++类相关API
int luaL_newmetatable (lua_State *L, const char *tname);
如果注册表中不存在名为tname的表,则在注册表中创建一个名为tname的表,并将这个表压栈,返回值为1;
如果注册表中已存在名为tname的表,则直接将这个表压栈,返回值为0。
void luaL_requiref (lua_State *L, const char *modname, lua_CFunction openf, int glb);
如果modname在package.loaded中不存在,则调用openf,并以字符串modname作为实参,然后将结果保存在package.loaded[modname]中,和Lua脚本中require函数的功能类似;
如果glb为true,那么也会将结果保存到全局变量modname中。
这个函数会在堆栈上保留一个module的副本。
* 类的名字和模块的名字可以是不同的。
通俗地说,类的表存储在注册表中,而模块的表存在package.loaded中。
如果需要把类注册到模块中,需要把类的表作为一个元素设置到模块的表中,这时需要用一个名字来索引模块表中的类表。
类的表在注册表中不需要一定使用字符串来做索引,也可以使用Light Userdata和引用机制。
Lua 5.3注册C++类相关API的更多相关文章
- Java基础--常用API--集合类相关API
一.泛型 1.泛型的本质是将类型参数化,即将数据类型作为参数. 2.泛型可以在编译期进行检查,其所有的强制转换是隐式且自动的,提高了代码的安全性. 3.泛型可以用在类(泛型类).接口(泛型接口).方法 ...
- 多线程(二)~Thread类相关的API介绍
一.线程安全问题: 当我们使用多个线程操作统一方法内的局部变量的时候,每个局部变量在当前线程里都有自己的副本,这种情况是不会出现线程安全问题的.当我们两个线程同时操作全局变量的时候,有可能 ...
- Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类
主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3 参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 在 ...
- python 以单例模式封装logging相关api实现日志打印类
python 以单例模式封装logging相关api实现日志打印类 by:授客QQ:1033553122 测试环境: Python版本:Python 2.7 实现功能: 支持自由配置,如下lo ...
- 某音乐类App评论相关API的分析及SQL注入尝试
关键字:APIfen.工具使用.sql注入 涉及工具/包:Fiddler.Burpsuite.Js2Py.Closure Compiler.selenium.phantomjs.sqlmap 摘要: ...
- [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
- 【Socket编程】Java中网络相关API的应用
Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...
- lua c函数注册器
lua与c的交互 关于lua和c的交互,主要有两个方面,一是lua调用c的函数,而另一个则是c调用lua函数.而这些都是通过lua stack来进行的. c调用lua 在c里面使用lua,主要是通过l ...
随机推荐
- ubuntu18.04右键怎么添加新建空白文本文件
安装好ubuntu18.04发现右键菜单中没有新建空白文件了,这样工作的时候需要创建文本文件就不是很方便了,这里我们就可以通过以下的方式把新建空白文件添加到右键 解决办法: 1.打开文件夹,在用户主目 ...
- NCoreCoder.Aop 国庆更新
原本的IAopActors如下 public interface IAopActors { object Execute(AopContext context); Task<TResult> ...
- Docker入坑指南之EXEC
容器启动之后,如果我们需要进入容器内修改配置,比如mysql修改启动配置 我们启动的附加参数是不是shell,这个时候就可以用docker exec了,docker除了对image参数以外,大部分命令 ...
- 【BZOJ2821】作诗 题解(分块+前缀和)
前言:世间还有这么卡常的题…… ------------------ 题目链接 题目大意:给定长度为$n$的序列${a_i}$.有$m$次询问,问$[l,r]$内出现正偶数次的数字有多少个. 这题跟蒲 ...
- Java代码编写规范(转载)
编码规范 1 前言为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程.系统继承的其它资源中的源程序也应按此规 ...
- cmd批处理bat命令根据端口号一键关闭杀死对应进程程序
@ 目录 cmd批处理bat命令根据端口号一键关闭杀死对应进程程序 使用场景和功能介绍 主界面 下载地址 源代码 cmd批处理bat命令根据端口号一键关闭杀死对应进程程序 使用场景和功能介绍 java ...
- 100行Python代码实现一款高精度免费OCR工具
近期Github开源了一款基于Python开发.名为 Textshot 的截图工具,刚开源不到半个月已经500+Star. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语 ...
- Unity 笔记
摄像机 Main Camera 跟随主角移动,不看 UI 剧情摄像机 当进入剧情时,可以关闭 main camera,启用剧情摄像机,不看 UI UI 摄像机 看 UI Unity编辑器常用的sett ...
- 每日一道 LeetCode (15):二进制求和
每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...
- Mybatis如何在插入(ID是后台生成的)后返回ID?
获得ID方法: