lua
文章平均质量分 74
linuxheik
这个作者很懒,什么都没留下…
展开
-
与Lua交换自定义数据
使用metatable提供面向对象调用方式 上面的VCL代码库为Lua提供了GUI的支持,但是看那些Lua代码,还处于面向过程时期。如何能把VCL.show(edt)之类的代码改成edt: show()这样的形式呢?还是先看代码://------------------------------------------------------------------转载 2016-09-08 21:27:49 · 746 阅读 · 0 评论 -
setenv setfenv
setenv是在lua5.1中有的改变函数作用域的函数。用法是setenv(func or number,tbl),第一个参数可以是数字也可以是函数,数字1表示当前的作用于,2表示上一层的作用域,特殊情况0,setfenvchanges the environment of the running thread. In this case,setfenv returns no values转载 2016-11-15 07:01:44 · 1115 阅读 · 0 评论 -
Calling lua functions from .lua's using handles?
Calling lua functions from .lua's using handles?up vote0down votefavorite5I'm working on a small project trying to integrate lua with c++. My problem howeve转载 2016-11-18 09:38:08 · 385 阅读 · 0 评论 -
luna
lua绑定C++对象学习>中学习了闭包,元表和lua的面向对象实现后,我被的元机制震撼了,果断体会到了如果把自己禁锢在C++的圈子里坐井观天是多么的可惜.来看看超轻量级对象绑定luna类的使用和实现吧.首先,它的使用比较简单(luna没实现继承,类型检查等,毕竟只是一个可供借鉴和学习的最基础实现而已),代码如下: 1 extern "C" 2 { 3转载 2016-11-15 10:55:41 · 2650 阅读 · 0 评论 -
Lua coroutine.create
Lua coroutine.creat相当于在C ++中使用lua_newthread(Equivalent of Lua coroutine.create in C++ using lua_newthread)转载 2016-11-18 16:32:51 · 1118 阅读 · 0 评论 -
C/C++ 与lua混合使用入门讲的比较好的文章
转载一篇将C/C++ 与lua混合使用入门讲的比较好的文章转自 http://www.open-open.com/home/space-6246-do-blog-id-1426.html Lua是一个嵌入式的脚本语言,它不仅可以单独使用还能与其它语言混合调用。Lua与其它脚本语言相比,其突出优势在于:可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域转载 2016-11-18 16:35:38 · 3460 阅读 · 0 评论 -
lua_tothread
Hello.Call to lua function from c using yielded lua_State works fine. But same call with line hook set crashes in lvm.c line 71. Lua version 5.1.4 Code to reproduce:#include extern "转载 2016-11-18 16:39:59 · 782 阅读 · 0 评论 -
lua coroutine
http://www.thinksaas.cn/topics/0/494/494488.html 现在Lua就成功的配置到Xcode中了。二、使用Lua使用Lua,首先要在本地新建Lua文件。比如要在iPhone中使用,可以将文件建立在App下的Documents文件夹下,或者可以放在服务器端,使用时下载下来。比如此处我新建了两个Lua文件,一个叫Eng转载 2016-11-18 16:44:31 · 262 阅读 · 0 评论 -
Lua中的协同程序 coroutine
int running = 1;int lua_finish(lua_State * L) {running = 0;printf("lua_finish called\n");return 0;}int lua_sleep(lua_State *L) {printf("lua_sleep called\n");//lua_pushnumber(L, 10)转载 2016-11-23 19:55:13 · 343 阅读 · 0 评论 -
Lua co-routines
Lua co-routinesup vote7down votefavorite1http://stackoverflow.com/questions/7206411/lua-co-routinesI'm trying to get an understanding of how I can use co-转载 2016-11-23 19:56:11 · 392 阅读 · 0 评论 -
Use of pushglobaltable and setfenv in Lua5.3
Use of pushglobaltable and setfenv in Lua5.3up vote1down votefavoritehow to get luathread function with same function name in diffent luathreads in Lua 5.3?转载 2016-11-17 18:04:22 · 529 阅读 · 0 评论 -
5.2lua setfenv
local FuncEnv={} setmetatable(FuncEnv, {__index = _G}) local func=loadfile("a.lua")--local func=loadfile("a.lua", nil, FuncEnv) local _ENV=FuncEnv--setfenv(func,FuncEnv)()--等价于setfenv(func转载 2016-11-17 16:27:46 · 656 阅读 · 0 评论 -
lua安装不成功
/usr/local/lib/libreadline.so.6: undefined symbol: PC A by Wooce:cd /usr/local/libmkdir tempmv libreadline* temp/ldconfig再运行smbclient, 问题解决! tar-zxvf lua-5.2.0.ta转载 2016-10-10 18:54:41 · 2207 阅读 · 0 评论 -
使用Slua框架开发Unity项目的重要步骤
下载与安装下载地址 GitHub安装过程1.下载最新版,这里, 解压缩,将Assets目录里的所有内容复制到你的工程中,对于最终产品,可以删除slua_src,例子,文档等内容,如果是开发阶段则无所谓。2.等待unity编译完毕,如果一切顺利的话,将出现slua菜单, 点击slua菜单中 All->Make 命令 手动生成针对当前版本的U3d接口文件。3.每次更新slua版本,转载 2016-09-27 11:55:25 · 3393 阅读 · 0 评论 -
[Unity]使用Slua框架开发创建Unity引擎中的对象
http://www.jianshu.com/p/fadb5dd59352[Unity]使用Slua框架开发创建Unity引擎中的对象字数1052 阅读3556 评论0 喜欢10[Unity]技术学习路线图(长期更新)接上篇《[Unity]使用Slua框架开发Unity项目的重要步骤》下载与安装下载地址 GitHub安装过程1.下载最新版转载 2016-09-27 15:12:06 · 1480 阅读 · 0 评论 -
lua 在C函数中保存状态:registry、reference和upvalues
在C函数中保存状态:registry、reference和upvaluesC函数可以通过堆栈来和Lua交换数据,但有时候C函数需要在函数体的作用域之外保存某些Lua数据,那么我们想到全局变量或static变量,这样做的缺点是:(1)为Lua设计C函数库时,导致不可重入;(2)不是所有的Lua值都能很好的保存到C变量中。那么可不可以将值保存在Lua全局变量里面呢,可以,Lua就提转载 2016-11-14 11:36:39 · 777 阅读 · 0 评论 -
setfenv 5.1
local FuncEnv={} setmetatable(FuncEnv, {__index = _G}) local func=loadfile("a.lua") setfenv(func,FuncEnv)()--等价于setfenv(func,FuncEnv);func(); --func()--FuncEnv.test()print(FuncEnv.abc)转载 2016-11-17 11:47:12 · 258 阅读 · 0 评论 -
Lua解析和变量作用域
近期研究了一下Lua语言在解析时的一些细节,如果在C程序中执行lua脚本的话, 那么变量的作用域是非常值得关注的,这里记录一下在分析过程中得到的一些结论。(本文的描述针对的是lua-5.1.5这个版本的代码) 考察下面的两段代码:scope.lua 1 b = 700 -- GT['b'] = 700 2 local a = 9 -转载 2016-11-17 13:03:45 · 2177 阅读 · 0 评论 -
Lua中的环境概念
Lua中的环境概念2014-07-29 分类:Lua 阅读(1834)评论(12) 前言Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”。这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现;另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table自身保存在转载 2016-11-17 13:04:53 · 1040 阅读 · 0 评论 -
A template class for binding C++ to Lua
A template class for binding C++ to Lua标签: classc++bindingconstructorluafunction2006-09-09 15:50 1397人阅读 评论(0) 收藏 举报目录(?)[+]http://www.lua.org/notes/ltn005.html Techn转载 2016-11-17 13:17:47 · 401 阅读 · 0 评论 -
5.2 可变参数
5.2 可变参数Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(...)表示函数有可变的参数。Lua将函数的参数放在一个叫arg的表中,除了参数以外,arg表中还有一个域n表示参数的个数。例如,我们可以重写print函数:printResult = "" function print(...) for i,v in ipai转载 2016-11-17 16:01:31 · 253 阅读 · 0 评论 -
5.1 setfenv,但5.3可以使用lua_getglobal(l1, "_G");
lua_State *L = luaL_newstate();luaL_openlibs(L);dostring(L, "function f1() my_var = 100 print('var set') end");/* create func on state *//* ^-- a wrapper which does loadstring + pcall with error h转载 2016-11-17 17:18:41 · 2392 阅读 · 0 评论 -
5.1之前, 全局变量存储在_G这个table中, 这样的操作:5.3 lua_setupvalue
5.1之前, 全局变量存储在_G这个table中, 这样的操作:a = 1 相当于:_G['a'] = 1但在5.2之后, 引入了_ENV叫做环境,与_G全局变量表产生了一些混淆,需要从原理上做一个理解。在5.2中, 操作a = 1相当于_ENV['a'] = 1这是一个最基础的认知改变,其次要格外注意_ENV不是全局变量,而是一个upvalue(非局部变量转载 2016-12-06 23:11:46 · 2119 阅读 · 0 评论 -
Lua绑定C++类
原文:http://blog.csdn.net/chenee543216/article/details/12074771以下是代码:Animal.h文件[cpp] view plain copy #pragma once #ifndef __ANIMAL_H__ #define __ANIMAL_H__ class转载 2017-04-12 10:05:51 · 353 阅读 · 0 评论 -
lua的元表
lua的元表metatable 入门 lua weakish 2014年02月17日发布推荐 2 推荐收藏 7 收藏,5.5k 浏览metatable是Lua中的重要概念,每一个table都可以加上metatable,以改变相应的table的行为。让我们看一个例子:t = {} -- 普通的table转载 2017-04-13 10:54:33 · 431 阅读 · 0 评论 -
Lua中的迭代器与泛型for
Lua中的迭代器与泛型for2014-07-17 分类:Lua 阅读(1769)评论(8) 前言迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数。每调用一次函数,就返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持。现在转载 2017-04-19 11:17:08 · 280 阅读 · 0 评论 -
Lua中的元表与元方法学习总结
前言元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。那这篇博文就是主要讲的如何定义这个指定的函数,这个指定的函数是什么?希望对学习Lua的朋友有帮助。转载 2017-04-20 10:17:22 · 720 阅读 · 0 评论 -
lua元表以及元方法
知微出凡lua元表以及元方法lua中的变量是没有数据类型的,值有类型。类型有八种nil,number,boolean, string, function, thread, userdata以及table。Lua 中的每个值都可以有一个 元表 。 这个 元表 就是一个普通的 Lua 表,它用于定义原始值在特定操作下的行为。例如,当你对非数字值做加操作时转载 2017-04-21 16:42:57 · 520 阅读 · 0 评论 -
LUA中的and与or
LUA中的and与or2013-01-04 14:51 14074人阅读 评论(2) 收藏 举报 分类:Lua(44) 逻辑运算符认为false和nil是假(false),其他为真,0也是true.and的优先级比or高其它语言中的and表示两者都为真的时候,才返回为真,而只要有一个假,都返回假.lua虽不仅返回假的语义,还返回导致假的值.也转载 2017-05-04 17:52:13 · 4787 阅读 · 0 评论 -
c++调用lua时简单打印lua栈
今天出现了一个看似奇怪的bug,关于dispatch和listener的,有个listener的函数被无端调用,分析代码,应该只有点击按钮才会被调用,但现在是一启动游戏就会被调用,而且pc上正常,iphone手机上会出问题。我们采用打印lua堆栈的方式,打印堆栈代码如下:print( debug.traceback() )。分析堆栈发现是dispatch了一个未定义的字符串,把字符串正常定义就好了转载 2017-07-18 16:33:32 · 2481 阅读 · 0 评论 -
lua函数
在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在WoWAPI没有提供所有标准的Lua函数, 很显然, 操作系统以及文件I/O库是不支持的 Lua函数这些函数都是Lua编程语言的一部分, 点击这里了解更多. •转载 2017-10-17 16:28:25 · 330 阅读 · 0 评论 -
lua动态链接库(luaopen_*函数的使用)
lua中使用c动态库,像luacjson(支持unicode),luasocket,都是以动态链接库的形式在lua中使用的,至于怎么写这些动态链接库很少有教程说到,下面我就说说如何把c文件编译成动态库。首先,假设需要在lua中调用一个在c中实现的求和函数,函数名add(a,b)。我给这个测试库取名为dylib,它包含一个函数add。lua中这样使用: local dy转载 2017-11-06 14:22:02 · 3705 阅读 · 0 评论 -
Lua5.1的元方法__call的使用示例
Lua5.1的元方法__call的使用示例标签: luafunctionc2011-01-20 09:40 3986人阅读 评论(0) 收藏 举报 分类:Lua(7) 版权声明:本文为博主原创文章,未经博主允许不得转载。Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio> fu转载 2017-04-12 09:44:52 · 2719 阅读 · 0 评论 -
Lua的线程和状态 及协程
luaL_loadstring(L, "return coroutine.create(function() end)"); nCallResult = lua_pcall(L, 0, 1, 0);创建一个协程和lua_newthread创建一个线程一样,不过这个创建会在线程的堆栈上压入一个上面的function() end;lua_newthread只是创建一个线程,堆栈个数为转载 2017-04-11 14:12:15 · 3011 阅读 · 0 评论 -
Implementing setfenv in Lua 5.2, 5.3, and above
Implementing setfenv in Lua 5.2, 5.3, and aboveAn upvalue tutorialPosted July 08, 2015 by leafo (@moonscript) · Tags: luaTweetIf you've programmed in Lua 5.1 you've probably come acros转载 2016-12-06 23:13:15 · 382 阅读 · 0 评论 -
Lua coroutine 不一样的多线程编程思路
Lua coroutine 不一样的多线程编程思路2009-04-26 17:30:00标签:线程 Lua coroutine 思路 休闲原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://timyang.blog.51cto.com/1539170/307675上周末开始看《Lua程序设计》第二转载 2016-11-24 15:43:41 · 421 阅读 · 0 评论 -
Lua 学习笔记:沙盒
背景知识Lua 给我的感觉是:各种内置函数和标准库的存在感都是比较强的。如果执行这句:for name in pairs(_G) do print(_G) end就会把各种环境中已存在名称的打印出来:全局变量:比如字符串 _VERSION。内置函数:比如 print、tonumber、dofile 之类。模块名称:比如 string、io、coroutine 之类。转载 2016-12-07 09:39:59 · 930 阅读 · 0 评论 -
Lua 协同程序(coroutine)
Lua 协同程序(coroutine)什么是协同(coroutine)?Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程转载 2016-12-07 10:22:19 · 237 阅读 · 0 评论 -
2.11 - Coroutine (协同例程)
2.11 - Coroutine (协同例程)Lua 支持 coroutine ,这个东西也被称为协同式多线程 (collaborative multithreading) 。 Lua 为每个 coroutine 提供一个独立的运行线路。 然而和多线程系统中的线程不同,coroutine 只在显式的调用了 yield 函数时才会挂起。创建一个 coroutine 需要调用一次 corout转载 2016-12-07 10:27:20 · 514 阅读 · 0 评论 -
lua中的Coroutine
lua中的Coroutine接着我们来看看如何用Lua的语法来描述它:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515转载 2016-12-07 10:32:09 · 813 阅读 · 0 评论