当前位置:  开发笔记 > 编程语言 > 正文

存储Lua功能?

如何解决《存储Lua功能?》经验,为你挑选了2个好方法。

从C 调用Lua函数是相当简单的,但有没有办法 Lua函数存储在某个地方供以后使用?我想存储传递给我的C函数的用户定义的Lua函数以用于事件,类似于connect函数在wxLua中的工作方式.



1> Javier..:

检查注册表(luaL_ref()).它管理一个简单的表,允许您存储任何Lua值(如函数),并通过一个简单的整数从C引用它.


Lua ref太酷了 - 无法相信我一直在使用Lua而不知道这个功能.谢谢!

2> andygeers..:

基于Javier的答案,Lua有一个特殊的通用访问表,称为注册表,可以使用伪索引通过C API访问LUA_REGISTRYINDEX.您可以使用该luaL_ref函数在注册表中存储您喜欢的任何Lua值(包括Lua函数)并接收一个可用于从C引用它的整数:

// Assumes that the function you want to store is on the top of stack L
int function_index = luaL_ref(L, LUA_REGISTRYINDEX);

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有