![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lua
嘎嘎嘎498451
这个作者很懒,什么都没留下…
展开
-
去掉 full userdata 的 GC 元方法【转】
原文地址:http://blog.codingnow.com/2013/08/full_userdata_gc.html根据 Lua 文档中的说法,lightuserdata 比 fulluserdata 要廉价一些。那么,其中的区别在哪里呢?空间开销上,fulluserdata 是一个 GC 对象,所以比 lightuserdata 要多消耗一点内存,这点内存往往对程序不造成太大的影响。转载 2014-06-01 08:22:59 · 741 阅读 · 0 评论 -
[tolua++]tolua++中暴露对象给lua时,一定要把析构函数暴露给lua 【转】
原文地址:http://www.cnblogs.com/egmkang/archive/2012/07/01/2572064.html 题目不知道怎么取才好,但是意思很简单:如果你暴露一个复杂对象给Lua,实现类似于OO编程的话,那么也要把析构函数暴露给Lua.否则的话,lua gc的时候,回收垃圾对象,没有找到回收函数,就直接free掉了,这在C++中,是相当致命的.to转载 2014-05-30 22:38:24 · 967 阅读 · 0 评论 -
Tolua++技术文档 【转】
原文地址:http://lua.codemach.com/tolua-ji-shu-wen-dang.html1.简介Tolua++是一个编程语言文本转换工具,主要用来将C/C++文件转化成lua需要的接口形式。即把大量的函数转成static int XXX(lua_State* tolua_S)形式,以供注册到lua里面。Tolua++通过pkg文件来导出需要的类型,函数,对转载 2014-05-31 12:28:17 · 995 阅读 · 0 评论 -
Lua和C语言的交互2【转】
原文地址:http://www.grati.org/?p=666C调用Lua函数不要怀疑,对Lua函数的调用也是通过栈来进行的。请看如下代码:Lua代码:function lua_func (x, y)print("Parameters are: ", x, y)return (x^2 * math.sin(y))/(1-x)endC代码:转载 2014-05-31 11:58:43 · 703 阅读 · 0 评论 -
Lua和C语言的交互3【转】
原文地址:http://www.grati.org/?p=670自定义数据类型:我们通过使用C语言实现一个Lua数组来演示Lua实现自定义用户数据。数组的结构如下所示:typedef struct NumArray{int size; //表示数组的大小double values[]; //此处的values仅代表一个double*类型的指针,value转载 2014-05-31 11:59:27 · 1285 阅读 · 0 评论 -
LUA源码分析三:table分析(1)
http://lin-style.iteye.com/blog/976945版本整理日期:2011/3/27分析函数:getn,tinsert table在里面数据方式比较直观,但是算法很复杂。一些算法的坑会慢慢补上。先总括下table的数据结构:1)由一个hash表和一个数组构成,当插入一个小标元素,会根据当前数组的大小决定插入哪转载 2015-03-10 14:45:51 · 855 阅读 · 0 评论 -
luajit command line
LuaJIT has only a single stand-alone executable, called luajit on POSIX systems orluajit.exe on Windows. It can be used to run simple Lua statements or whole Lua applications from the command line.转载 2015-04-10 16:25:47 · 1090 阅读 · 0 评论 -
Lua的线程和状态
http://www.jellythink.com/archives/616那不是真的多线程Lua不支持真正的多线程,这句话我在《Lua中的协同程序》这篇文章中就已经说了。根据我的编程经验,在开发过程中,如果可以避免使用线程,那就坚决不用线程,如果实在没有更好的办法,那就只能退而用之。为什么?首先,多个线程之间的通信比较麻烦,同时,线程之间共享内存,对于共享资源的访转载 2015-07-04 13:35:21 · 2346 阅读 · 0 评论 -
【深入Lua】理解Lua中最强大的特性-coroutine(协程)
http://my.oschina.net/wangxuanyihaha/blog/186401coroutine基础Lua所支持的协程全称被称作协同式多线程(collaborative multithreading)。Lua为每个coroutine提供一个独立的运行线路。然而和多线程不同的地方就是,coroutine只有在显式调用yield函数后才被挂起,同一时间内只有一转载 2015-08-12 11:42:42 · 11489 阅读 · 0 评论 -
Lua 标准库 - 基本函数(base function)
1、assert (v [, message]) 功能:相当于C的断言, 参数: v:当表达式v为nil或false将触发错误, message:发生错误时返回的信息,默认为"assertion failed!" 2、collectgarbage (opt [, arg]) 功能:是垃圾收集器的通用接口,用于操作垃圾收集器 参数转载 2015-08-12 11:41:42 · 724 阅读 · 0 评论 -
对“tolua++导出C++子类后在Lua中无法添加新成员”这一问题的初步分析【转】
一、问题的起因 问题首先是在Quick-x中发现的,原因是希望为CCNode添加一个Lua自定义方法就会出错:view sourceprint?1function CCNode:myMethod()2end 运行错误提示是 [LUA ERROR] stac转载 2014-05-31 21:24:22 · 977 阅读 · 0 评论 -
lua源码注释1【转】
最近读了点lua的源码,打算记录下来,将来也知道自己这一段干了啥。 其实我以前也试图读过lua源码,不过一直没有找对下手方向,比如我一直试图从main下手,这个是错误的,还没有进行正题,就被一大堆初始化给搞晕了,加之决心不大,就这样一直拖着没有看。 不过最近因为工作的原因,熟悉了lua的c api,发现从c api入手是个不错的方法。但转载 2014-05-30 23:43:19 · 1107 阅读 · 0 评论 -
lua中的require机制【转】
原文地址:http://bbs.chinaunix.net/thread-1163659-1-1.htmllua中的require机制 为了方便代码管理,通常会把lua代码分成不同的模块,然后在通过require函数把它们加载进来。现在看看lua的require的处理流程。1、require机制相关的数据和函数 package.path:保存加载外部模块转载 2014-05-29 10:35:25 · 1083 阅读 · 0 评论 -
tolua++实现分析 【转】
项目正在使用cocos2dx的lua绑定,绑定的方式是tolua++。对大规模使用lua代码信心不是很足,花了一些时间阅读tolua++的代码,希望对绑定实现的了解,有助于项目对lua代码的把控。从阅读结果上来看,起码在内存管理上,帮助还是很大的。1.tolua++如何将c++对象导入到lua里tolua++为每一个传入lua的对象建立一个userdata,us转载 2014-05-29 18:30:20 · 826 阅读 · 0 评论 -
lua源码剖析1【转】
原文地址:http://simohayha.iteye.com/blog/517748 先来看lua中值的表示方式。Java代码 #define TValuefields Value value; int tt typedef struct lua_TValue { TValuefields; } TValue; #defin转载 2014-05-30 23:11:17 · 1274 阅读 · 0 评论 -
lua源码剖析2【转】
原文地址:http://simohayha.iteye.com/blog/540546转载 2014-05-30 23:12:58 · 746 阅读 · 0 评论 -
lua和C++相互交换数据1 【转】
原文地址:http://blog.csdn.net/asmc51/article/details/3848221转载 2014-05-30 23:50:54 · 1321 阅读 · 0 评论 -
cocos2dx的lua绑定 【转】
原文地址:http://blog.csdn.net/wtyqm/article/details/9106137 话接上篇(tolua++实现分析)一、cocos2dx对tolua++绑定的修正A.c对lua回调函数的引用在使用cocos2dx编写游戏时,我们经常会设置一些回调函数(时钟、菜单选择等)。如果采用脚本方式编写游戏的话,这些回调函数也是需要写在脚本里的转载 2014-05-30 20:42:11 · 733 阅读 · 0 评论 -
tolua++实现分析 【转】
原文地址:http://blog.csdn.net/wtyqm/article/details/8977975 项目正在使用cocos2dx的lua绑定,绑定的方式是tolua++。对大规模使用lua代码信心不是很足,花了一些时间阅读tolua++的代码,希望对绑定实现的了解,有助于项目对lua代码的把控。从阅读结果上来看,起码在内存管理上,帮助还是很大的。1.tolua++如转载 2014-05-30 20:45:11 · 741 阅读 · 0 评论 -
lua源码剖析3【转】
原文地址:http://simohayha.iteye.com/blog/552391 这次简单的补充一下前面类型部分剩下的东西。首先我们要知道当我们想为lua来编写扩展的时候,有时候可能需要一些全局变量。可是这样会有问题,这是因为这样的话,我们就无法用于多个lua状态(也就是new 多个state).于是lua提供了三种可以代替全局变量的方法。分别是注册表,环境变量和up转载 2014-05-30 23:13:53 · 1559 阅读 · 0 评论 -
lua_touserdata返回值详释 【转】
原文地址:http://blog.csdn.net/whl_cxy/article/details/12223455void *lua_touserdata(lua_State*L,intindex);如果给定索引处的值是一个完整的userdata,函数返回内存块的地址。如果值是一个lightuserdata,那么就返回它表示的指针。否则,返回NULL。例如: 在CCLuaSt转载 2014-05-30 19:12:20 · 1093 阅读 · 0 评论 -
Lua中的元表与元方法
前言元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。那这篇博文就是主要讲的如何定义这个指定的函数,这个指定的函数是什么?希望对学习Lua的朋友有帮助。转载 2015-08-31 08:11:12 · 1144 阅读 · 0 评论