luaL_ref如何使用
// main.lua中有个全局函数
function gf()
print("hello world")
end
// c++中处理
void callgf()
{
lua_getglobal(L,"gf");
// 存放函数到注册表中并返回引用
int ref = luaL_ref(L,LUA_REGISTRYINDEX);
// 从注册表中读取该函数并调用
lua_rawgeti(L,LUA_REGISTRYINDEX,ref);
lua_pcall(L,0,0,0);
}
上面的函数会调用gf打印出”hello world”
https://blog.csdn.net/bbhe_work/article/details/51064132
luaL_ref如何使用的更多相关文章
- c++调用lua注册的带参数的回调
main.cpp int lua_cb = LUA_REFNIL; int lua_cb_arg = LUA_REFNIL; int setcb(lua_State *L) { lua_pushval ...
- 我的第一份供lua调用的c模块
#include <stdio.h> #include <string> #include <direct.h> #include <windows.h> ...
- Lua与C的交互
Lua 与 C 的交互 Lua是一个嵌入式的语言,它不仅可以是一个独立运行的程序,也可以是一个用来嵌入其它应用的程序库. C API是一个C代码与Lua进行交互的函数集,它由以下几部分构成: 1. ...
- Lua 5.1 参考手册
Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes 云风 译 www.codingno ...
- 在c中保存状态
1. 注册表 注册表是一个普通的table,我们可以将c函数中需要保存的状态都存储在注册表中,注册表是可以被多个c模块共享的. 由于注册表是一个普通table,我们同样可以在栈中对其进行操作,只是这个 ...
- cocos2dx的lua绑定
一.cocos2dx对tolua++绑定的修正 A.c对lua回调函数的引用 在使用cocos2dx编写游戏时,我们经常会设置一些回调函数(时钟.菜单选择等).如果采用脚本方式编写游戏的话,这些回调函 ...
- 在C函数中保存状态:registry、reference和upvalues
C函数可以通过堆栈来和Lua交换数据,但有时候C函数需要在函数体的作用域之外保存某些Lua数据,那么我们想到全局变量或static变量,这样做的缺点是:(1)为Lua设计C函数库时,导致不可重入:(2 ...
- C中调用LUA回调(LUA注册表)
实现原理: 通过将LUA中得回调函数存入LUA注册表中来保存LUA函数,然后在需要回调时从LUA注册表中取出LUA函数进行调用 下面是一些预备知识:(学习两个重要的函数) 原汁原味的英文解释的最透彻, ...
- 邦定lua函数到C里做为回调
1, int ref = luaL_ref(L, LUA_REGISTRYINDEX); //把栈顶的obj 存在lua的表里面,返回一个唯一的引用,(栈顶的obj被自动清除),,(这个引用作为回 ...
- C模块回调Lua函数的两种方法
作者:ani_di 版权所有,转载务必保留此链接 http://blog.csdn.net/ani_di C模块回调Lua函数的两种方法 lua和C通过虚拟栈这种交互方式简单而又可靠,缺点就是C做栈平 ...
随机推荐
- linux:shell
关于shell 什么是shell? shell,是用c编写的,既是命令语言,也是一种程序设计语言 shell指一种应用程序,该程序提供一个界面,用户可通过该界面访问操作系统 什么是脚本? 脚本是一条文 ...
- linux:用户管理
用户账号添加.删除.修改以及用户密码的管理 用户组的管理 涉及三个文件: /etc/passwd :存储用户的关键信息 /etc/group :存储用户组的关键信息 /etc/shadow :存 ...
- 一文读懂ROS开发,解锁RK3562J + Ubuntu工业平台应用
在工业智能化浪潮中,智能机器人设备是成为工业自动化体系的璀璨之星,而其核心 --ROS系统,更是机器人领域的集大成者.今天,和大家分享一个ROS开发案例,基于RK3562J + Ubuntu工业平台. ...
- 从存钱罐到子数组:一个关于累加和的精妙问题|LeetCode 560 和为K的子数组
LeetCode 560 和为K的子数组 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 生活中的算法 你有没有这样的经历:每天往存钱罐里存一些零钱,某一天突 ...
- [文件格式/数据存储] Parquet:开源、高效的列式存储文件格式协议
序:缘起 => 用 java 读取 parquet 文件 生产环境有设备出重大事故,又因一关键功能无法使用,亟需将生产环境的原始MQTT报文(以 parquet 文件格式 + zstd 压缩格式 ...
- HT-018 Div3 构造 题解 [ 黄 ] [ 数学 ] [ 结论 ]
构造:结论题,gcy数竞大佬tql%%%orz. 结论 先放结论:如果 \(x \bmod 4=2\) ,那么 \(x\) 无法被表示为 \(a^2-b^2\) 的形式:除此之外的其他数都可以. 证明 ...
- [联合省选 2020A] 组合数问题 题解
后面有一只大大的组合数,考虑下降幂干过去.\(x^k\) 并不好使,这边考虑转化 \(f(x)=\sum a_ix^i=\sum b_ix^\underline i\). \[\sum_{k=0}^n ...
- 若依-Vue 单体版本 更换mybatisPlus
1.单体模块在pom.xml ; 多模块版本在ruoyi-common\pom.xml.模块添加整合依赖 <!-- mybatis-plus 增强CRUD --> <dependen ...
- .NET周刊【2月第3期 2025-02-16】
国内文章 我们是如何解决abp身上的几个痛点 https://www.cnblogs.com/jackyfei/p/18709265 张飞洪分享了abp框架在.net社区的使用经验,认为其在模块化.D ...
- Zookeeper - 本地模式部署
本地模式部署 zoo.cfg 参数解析 本地模式部署 1.上传zookeeper的安装包并解压 tar -zxvf zookeeper-x.x.x.tar.gz -c /xxx/xxx/ 2.将 zo ...