Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的
中文手册 http://www.codingnow.com/2000/download/lua_manual.html   英文: http://www.lua.org/manual/5.1/ 某人的学习笔记 http://www.cnblogs.com/glshader/category/256823.html   风大侠的Blog http://blog.codingnow.com/2006/
配置了一下迅雷开放界面的开发环境,准备测试一下lua脚本,迅雷blot界面 自带的lua源文件没什么问题,可是自己怎么写lua脚本运行都有问题,网上 搜索了一些时间,最终在一个国外的论坛上找到了解决的办法。 是字符编码问题,我使用的notepad++的字符编码是UTF-8,应该改为 UTF-8 without BOM编码格式,这样才能运行正确,这种方式只是针对 Notepad++,其他的文本编辑器
首先来一段PIL中的说明: Life is not always that easy. Sometimes, an object needs other resources besides raw memory, such as file descriptors, window handles, and the like. (Often these resources are just memor
一.   lua调用C++       在lua中是以函数指针的形式调用函数, 并且所有的函数指针都必须满足如下此种类型: typedef int (*lua_CFunction) (lua_State *L);   也就是说, 偶们在C++中定义函数时必须以lua_State为参数, 以int为返回值才能被Lua所调用. 但是不要忘记了, 偶们的lua_State是支持栈的, 所以通过栈可以传递
如果你对lus语言的中weak table不明白的话,那这篇文章应该对你有帮助。 所有脚本语言几乎都有垃圾回收器(GC),当然lua也有。 不明白GC不要紧,下面让我来解释: 这一切要先从现代编程语言的鼻祖 — C语言开始。 如果你在C中要使用变量,可以这样定义变量,如: ---------------------------------------------------- void hello
协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈,自己的局部变量,有自己的指令指针(IP,instruction pointer),但与其它协同程序共享全局变量等很多信息。线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只在必要时才会被挂起。
本文转自:http://blog.csdn.net/mrtechno/archive/2007/01/31/1498554.aspx   1. 简介 1.1 从C程序调用LUA函数 LUA的函数和普通变量一样也是First Class Variable类型,可以看作函数指针变量参与栈操作。因此调用过程分为如下几个步骤: 请求LUA函数(指针)入(GLOBAL)栈。 将函数需要的参数入栈,入栈顺序按
使用Lua编程,扩展外部接口时,不一定要编写lua专用的dll,使用系统的,或传统的动态链接库也可以,这样更具有通用性。 基本用法: require("alien") --1.加载alien libc = alien.load("msvcrt.dll") -- 2.加载动态链接库 libc.puts:types("void", "string") -- 3.说明参数类型 libc.puts:typ
Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问外包
当在Lua和C之间交换数据时我们面临着两个问题:动态与静态类型系统的不匹配和自动与手动内存管理的不一致。 在Lua中,我们写下a[k]=v时,k和v可以有几种不同的类型(由于metatables的存在,a也可能有不同的类型)。如果我们想在C中提供类似的操作,无论怎样,操作表的函数(settable)必定有一个固定的类型。我们将需要几十个不同的函数来完成这一个的操作(三个参数的类型的每一种组合都需要
Lua 的简单介绍     1. Lua的特点 2. 数据交换介绍 3. C和Lua脚本互相调用举例 4. 参考资料 1. Lua的特点 Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua最著名的应用是在暴雪公司的网络游戏WOW中。 Lua脚本可以很容易的被C/C++代码调用,也可以
概述 近来研究Lua这个东西,官网为http://www.lua.org/ 主要的目的是通过lua来对短信发送过来的业务报文转换为业务系统支持的格式,设计的思想是Lua进行业务报文的转换,报文的通讯采用c实现,因为要通过C实现SGIP协议报文的封装和到后台业务的转换。 C调用Lua函数 首先要进行Lua的初始化,这个主要是lua_open和luaL_openlibs函数 然后是解析并编译lua的代
今天某XXX.lua脚本中 local socket = require"socket" 死活通不过。这里是c++调用的lua脚本。 如果直接脚本解释器中运行  lua XXX.lua是能通过的。   lua调用库,要C++中显式加载模块如luaopen_socket(L);估计是没加载。 查了下:     Lua的require:require (modname) 用于加载指定的模块。    此
tbl = {"alpha", "beta", ["one"] = "uno", ["two"] = "dos"} for key, value in ipairs(tbl) do print(key, value) end --pairs() --pairs()函数基本和ipairs()函数用法相同, 区别在于pairs()可以遍历整个table, 即包括数组及非数组部分. -->如有pairs
lua学习笔记 1.全局变量不需要声明,给一个变量赋值后立即创建这个 全局变量,没有初始化,全局变量为nil,要删除全局变量 只需要赋值为nil即可。 2.注释,单行注释为--,注释块为--[[.....--]] 3.lua为动态类型语言,定义变量不需要声明类型,lua中的 8个基本类型分别为nil,boolean,number,string,userdata, function,thread,t
工作环境:ubuntu9.10,lua-5.1.4.tar.gz. 1、下载lua的源码包,地址如下,最新版本5.1.4。   2、下载ubuntu的编译支持 sudo apt-get install build-essential 注意,这里不仅仅是安装gcc而已,还包括很多其他工具。   3、下载libreadline相关支持,这个东西在编译时需要用到,无奈。 sudo apt-get ins
摘要 本文简单介绍了如何实现一个Lua调试器,实现Lua调试器的目的仅仅是寄希望借此熟悉Lua源代码。所编写的Lua调试器功能越强,表明你对Lua源码越了解。 正文 先前用lua写过一些应用,感觉Lua是一个很小巧的语言,Lua源代码无疑是研究语言相关的首选。“Lua虽小,五脏俱全”!为了研究Lua源代码,就打算着手写一个简单的Lua调试器,发现其中还是有些收获的,特记录如下。 作为一个调试器,应
from: http://bbs.luaer.cn/read-Lua-tid-233.html 环境:lua for windows (lfW) 主页:http://luaforwindows.luaforge.net/ lua for windows其实是一整套Lua的开发环境,它包括: Lua Interpreter(Lua解释器) Lua Reference Manual(Lua参考手册)
1、编译LUA 第1步: 从官方主页www.lua.org 下载Lua源代码,最新版本为5.1.2 。 解压之后找到“src”文件夹,这里面就是Lua了,不过还不能直接使用。 第2步: 使用任意ANSI C编译器,在这里使用VS2005编译LUA。具体步骤如下: 1、新建一个空的Console工程,在这里该工程名暂为“lua” 2、将src中的文件全部拷贝到该项目文件夹下 3、根据生成的文件来添加
LuaPlus是Lua的C++增强,也就是说,LuaPlus本身就是在Lua的源码上进行增强得来的。用它与C++进行合作,是比较好的一个选择。 LuaPlus目前版本为:LuaPlus for Lua 5.01 Distribution Build 1080 (February 28, 2004)。大家可以到 http://luaplus.org/ 站点下载: 源码   ( http://wwhi
lua在对两个整数进行除法操作时不会向C那样将结果转换成整数,而是自动转换成浮点数。(lua没有数据类型之分)。如果要实现此功能需要取得结果中的整数部分。 math.ceil (x) Returns the smallest integer larger than or equal to x. --取一个数的整数部分 function getIntPart(x) if x <= 0 then   
LuaPlus for Lua 5.1 Distribution Build 1100+ (May 24, 2008) Enhancements to Core Lua Functionality http://luaplus.org/ Author: Joshua Jensen (jjensen@workspacewhiz.com) Overview The LuaPlus distributi
项目中有个公会对象,数据大部分存在data中,之前都是 u.data.point这样访问,太麻烦了。 于是通过设置__index 使之可以直接访问属性,u.point。 但是还是不能直接改属性,u.point = 4,所以再设置了__newindex。   在设置了setmetatable之后,不能直接给u添加新属性,因为设置了__newindex,新的属性将直接加到u.data中的。   Uni
TIOBE发布了2011年6月份的编程语言排行榜,其中Lua语言延续上个月的增长势头,历史上第一次进入排行榜前十位,Java、C、C++依 然占据排行榜前3甲。1到10名依次为:Java、C、C++、C#、PHP、VB、Objective-C、Python、Perl、Lua,具体分布 图如下: 以下内容由乌帮图翻译(英文蹩脚,还望指正): 移动设备上的应用软件开发 现在是非常的热门,就像Objec
重新加载模块 function reload( moduleName ) package.loaded[moduleName] = nil require(moduleName) end   使用以上代码即可重新载入一个文件。 这样修改完lua代码后,可以不用重启程序立刻生效。     原代码 模块A: A = {} function A.test1() prin
主要因为单纯的学习Lua太枯燥了,所以先学些了Lua基本语法然后就直接学习了与C语言的相互调用,所以以后的OpenGL代码都用Lua写,这样更容易理解Lua以及提高学习兴趣。下面是这2天的代码包括C语言部分和Lua部分,因为公司环境是Ubuntu的所以我用glut库使代码在Linux和windows下都可以使用。 C语言代码如下: #include <GL/gl.h> #include <GL/
Lua脚本语法说明(修订) Lua脚本语法说明(增加lua5.1部份特性)   Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。   在Lua中,一切都是变量,除了关键字。 I.  首先是注释   写一个程序,总是少不了注释的。   在Lua中,你可以使用单行注释和多行注
尽管诸如 Perl、Python、PHP 和 Ruby 之类的解释性编程语言日益被 Web 应用程序广泛地采纳 —— 它们已经长期用来实现自动化系统管理任务 —— 但是诸如 C、C++ 之类的编译性编程语言依然是必需的。编译性编程语言的性能是脚本语言所无法企及的(只有手工调优的汇编程序的性能才能超过它),有些软件 —— 包括操作系统和设备驱动程序 —— 只能使用编译代码来高效地实现。实际上,当软件
对开发者这可能不是个好消息,我们又得学新的东西了。第一次听说它是在魔兽世界中,第一次看到它是在迅雷的UI库中。简单看看它有啥子优势吧,^_^  Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data de
1993年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro in Brazil)诞生了一门编程语言,发明者是该校的三位研究人员,他们给这门语言取了个浪漫的名字——Lua,在葡萄牙语里代表美丽的月亮。事实证明她没有糟蹋这个优美的单词,Lua语言正如它名字所预示的那样成长为一门简洁、优雅且富有乐趣的语言。   Lua从一开始就