- 博客(88)
- 收藏
- 关注
原创 设置csdn blog客户端
由于优快云使用的是Metaweblog 协议,一般的客户端不能自动识别,所以需要手动来配置。无论是什么客户端只要支持该协议既可以通过客户端来发布优快云的文章。配置过程如下: A.添加博客账户的时候: URL为: http://blog.youkuaiyun.com/javaws/ 账号为:javaws 密码:****** 这里注意:帐号和url地址要相对应。 B. 选择协议(API)时,按以下配置填写: 协议API选择:Metaweblog API 在Remote posting
2010-06-05 11:46:00
2638
原创 四种流行的AJAX框架jQuery,Mootools,Dojo,ExtJS的对比
AJAX是web2.0的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架?以下是一组摘抄的数据: Ajaxian在2007年底对Ajax工具进行了调查,部分调查结果见下表(其中数字为调查者使用该工具的百分比,详细的请参见网页):http://ajaxian.com/archives/2007-aj
2010-04-20 16:34:00
1248
原创 如何使用Lua逻辑运算符的技巧
逻辑表达式 Lua "short-cuts" 指逻辑表达式. 如果你写下了这样的Lua表达式:<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> x and y 如果 x 是 false 或者是 nil,
2010-04-01 15:59:00
2122
原创 Lua中为你的表table使用默认值
你是否希望你使用的table, 当他为nil时会以一个默认值来代替. 那么参照下面的方法. 我使用了一个count table当我迭代其他一些数据结构时可以为他们计数.<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
2010-04-01 15:58:00
1417
原创 在Lua表中使用gfind迭代字符串
这是一个更简洁的迭代字符串的方法.<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> for color in string.gfind("red green blue black orange green", "[^ ]+
2010-04-01 15:57:00
2102
原创 使用 Lua 编写可嵌入式脚本
尽管诸如 Perl、Python、PHP 和 Ruby 之类的解释性编程语言日益被 Web 应用程序广泛地采纳 —— 它们已经长期用来实现自动化系统管理任务 —— 但是诸如 C、C++ 之类的编译性编程语言依然是必需的。编译性编程语言的性能是脚本语言所无法企及的(只有手工调优的汇编程序的性能才能超过它),有些软件 —— 包括操作系统和设备驱动程序 —— 只能使用编译代码来高效地实现。实际上,当软件
2010-04-01 15:53:00
1224
原创 学习笔记 : Lua 编程技巧
应该尽量使用 local 变量而非 global 变量。这是 Lua 初学者最容易犯的错误。global 变量实际上是放在一张全局的 table 里的。global 变量实际上是利用一个 string (变量名作 key) 去访问这个 table 。虽然Lua5 的 table 效率很高 ,但是相对于 local 变量,依然有很大的效率损失。local 变量是直接通过 Lua 的堆栈访问的。有些
2010-04-01 15:44:00
1093
原创 Lua中实现类似C#的事件机制
Lua的语法非常灵活, 使用他的metatable及metamethod可以模拟出很多语言的特性. C#中我们这样使用事件:<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> xxx.Click += new Syst
2010-04-01 15:40:00
1000
原创 WoW 2.0 中...的使用技巧
WoW 2.0 中的Lua解释器更新到了Lua 5.1, ... 语句较以前(Lua 5.0前)变的更强大而节省内存. 这里有一些新的使用方法. Hooking 在以前, ... 语句在调用时会创建一个名为args 的表. 在内存中创建了一个表会可能引发垃圾回收. 这是一个缺陷:<!--Code highlighting produced by Actipro
2010-04-01 15:39:00
1032
原创 如何安全的Hook一个函数
本文讨论了参数和返回值的安全有效的处理方式. This HOWTO deals with pre-hooks. For details on post-hooks, see 如何安全的Post-Hook一个函数. For more information on the actual hooking of functions, see 如何Hook一个函数. 你通常这样使用么
2010-04-01 15:38:00
1643
原创 Lua中如何使用模式匹配
什么是正则表达式? 简单的说,正则表达式(我们通常称之为 Regex)就是符合某些规则的字符串. 这里是对正则表达式一个非常好的介绍. Lua 宣称自己是实现的是 ""patterns" 而不是 "regexes" (其实是一码事) . 在看其官方文档的时候可能会给人造成困扰,因为他从来不提 "regular expressions"; 你可以在 http://www.lua.o
2010-04-01 15:36:00
1593
原创 Lua中迭代器的使用技巧
迭代器的使用技巧 使用排序好的Key迭代 你曾有过这样的需求么<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> for k,v in pairs(t) do 按照排序的key来遍历表.<!
2010-04-01 15:35:00
1455
原创 在Lua表中实现迭代values
有时你需要写简洁的代码, 当你只需要迭代表的value时ipairs显的有些罗唆, 我们需要更简短的格式. 参看下面2个函数.<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> local function valuesIt
2010-04-01 15:32:00
1273
原创 向lua虚拟机传递信息
当程序逻辑交给脚本跑了以后,C/C++ 层就只需要把必要的输入信息传入虚拟机就够了。当然,我们也需要一个高效的传递方法。 以向 lua 虚拟机传递鼠标坐标信息为例,我们容易想到的方法是,定义一个 C 函数 get_mouse_pos 。当 lua 脚本中需要取得鼠标坐标的时候,就可以调用这个函数。 但这并不是一个好方法,因为每次获取鼠标坐标,都需要在虚拟机和 native code 间
2010-04-01 15:31:00
1341
原创 在C++中集成Lua脚本
为什么要用Lua作脚本? 使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需
2010-04-01 14:35:00
934
原创 在C++中集成Lua脚本
为什么要用Lua作脚本? 使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需
2010-04-01 14:32:00
995
原创 Lua中遍历表的方式
遍历表的方式 第一, 我们可以简单的遍历表中有效索引的值.<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> for i=1,table.getn(tbl) do local v=tbl[i]; ...
2010-04-01 14:30:00
2823
原创 如何Hook一个函数
函数是什么 在LUA中, 一个函数是一个简单的变量。从LUA的文档来看:<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> The statement function f () ... end trans
2010-04-01 14:30:00
2124
原创 Lua中回调的技巧
回调的技巧 回调函数能够提供参数化的数据结构处理方式. 计算能够计算个数的表的Values和<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> function sumover(t, fcn) --fcn(v)
2010-04-01 14:18:00
1361
原创 在Lua中管理C对象
今天同事在设计引擎的脚本接口时遇到一个问题:需要把 C 对象指针放到 Lua 中,允许 Lua 保存这个指针,并传递给其它模块。 这是给 Lua 写 C 扩展时常见的问题,撇开如何如何将对象的方法导入 Lua 这个更复杂的问题不谈,我主要想说说 C 对象的生命期管理的问题。 一开始的设计是把对象的销毁方法也导入 Lua ,由脚本程序员手工管理。这是很明显的 C 程序员的思路:谁构造谁释放。但在这里
2010-04-01 14:10:00
1218
原创 通过例子学习Lua(6)----C/C++中用Lua函数
1.简介 偶们这次主要说说怎么由Lua定义函数, 然后在C或者C++中调用. 这里偶们暂不涉及C++的对象问题, 只讨论调用函数的参数, 返回值和全局变量的使用. 2. 这里偶们在e12.lua里先定义一个简单的add(), x,y为加法的两个参数,return 直接返回相加后的结果. 例e12.lua<!--Code highlighting produced
2010-04-01 13:55:00
1103
原创 通过例子学习Lua(5) ---- Lua与C交互入门
1.简介 Lua与C/C++结合是很紧密的, Lua与C++交互是建立在Lua与C的基础上的, 所以偶先从Lua与C讲起. 正如第一讲所说, 运行Lua程序或者说调用Lua主要有两种方式: * 通过命令行执行"Lua"命令 * 通过Lua的C库 虽然此前偶们一直用第一种方式, 但偶要告诉你, 通过Lua的C库执行才是游戏中常用的方式. 2.Lua的C库 L
2010-04-01 13:52:00
718
原创 通过例子学习Lua(4) -- 函数的调用
1.不定参数 例e07.lua<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> -- Functions can take a -- variable number of -- arguments.
2010-04-01 13:49:00
641
原创 通过例子学习Lua(3) ---- Lua数据结构
1.简介 Lua语言只有一种基本数据结构, 那就是table, 所有其他数据结构如数组啦, 类啦, 都可以由table实现. 2.table的下标 例e05.lua<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com
2010-04-01 13:47:00
575
原创 通过例子学习Lua(2) --- Lua流程控制
1. 函数的使用 以下程序演示了如何在Lua中使用函数, 及局部变量 例e02.lua<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> -- functions function pythagorean(
2010-04-01 13:38:00
547
原创 Lua 标准库 - 协同程序处理(coroutine manipulation)
协同程序处理库是lua标准库的子类库,可以视作线程使用 1、coroutine.create (f) 功能:建立一个新的协同程序,f为入口函数,返回一个"thread"的值 2、coroutine.resume (co [, val1, ···]) 功能:第一次调用resume时,将要启动线程,val1...为传入f的参数 当线程因调用yield挂起,可以用resum
2010-04-01 13:33:00
1050
原创 Lua 标准库 - 操作系统处理(operating system facilities)
这个库通过表os实现 1、os.clock () 功能:返回一个程序使用CPU时间的一个近似值 2、os.date ([format [, time]]) 功能:返回一个按format格式化日期、时间的字串或表 若设置time参数,则按time指定的时间格式化,否则按当前时间格式化 参数: format: "!":按格林尼治时间进行格式化。 "
2010-04-01 13:32:00
4471
原创 Lua 标准库 - 输入输出处理(input and output facilities)
I/O库提供两种不同的方式进行文件处理 1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr 2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄 多数I/O函数调用失败时
2010-04-01 13:27:00
1489
原创 Lua 标准库 - 基本函数(base function)
基本函数库为Lua内置的函数库,不需要额外装载 1、assert (v [, message]) 功能:相当于C的断言, 参数: v:当表达式v为nil或false将触发错误, message:发生错误时返回的信息,默认为"assertion failed!" 2、collectgarbage (opt [, arg]) 功能:是垃圾收集器的通用接口,用于
2010-04-01 13:23:00
894
原创 Lua 标准库 - 算术函数(mathematical functions)
这是一个标准 C 的算术库,所有的函数存放于math表 1、math.abs (x) 功能:返回x的绝对值 2、math.acos(x) 功能:函数返回参数x的反余弦值。参数x 应当在-1和1之间 3、math.asin (x) 功能:函数返回参数x的反正弦值。参数x 应当在-1和1之间。 4、math.atan (x) 功能:函数返回参数x的反正切
2010-04-01 13:21:00
756
原创 Lua 标准库 - 表处理(table manipulation)
表处理库提供通用的表操作函数,所有操作都是基于表 注:所有函数只适用于以数字索引访问的表,以1为基索引 1、table.concat (table [, sep [, i [, j]]]) 功能:返回用sep连接表中的字串,sep默认为空字串,i默认为1,j默认为表的长度,如果i大于j则返回空字串 2、table.insert(table, [pos,] value)
2010-04-01 13:19:00
1095
原创 Lua 标准库 - 模块(Modules)
包库为Lua提供简易的加载及创建模块的方法,由require、module方法及package表组成 1、module (name [, ···]) 功能:建立一个模块。 当package.loaded[name]中存在时,当中的表作为module; 当在全局表中存在name指定的表时,此表作为module; 当以前两种情况都不存表name时,将新建一个表,并使其作为
2010-04-01 13:18:00
1105
原创 Lua的多任务机制——协程(coroutine)
并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制。大致上有这么两种多任务技术,一种是抢占式多任务(preemptive multitasking),它让操作系统来决定何时执行哪个任务。另外一种就是协作式多任务(cooperative multitasking),它把决定权交给任务,让它们在自己认为合适的时候自愿放弃执行。这两种多任务方式各有优缺点,前者固有的同步问
2010-04-01 12:05:00
951
1
原创 Metatable In Lua 浅尝辄止
什么是Metatable Lua中Metatable这个概念, 国内将他翻译为元表. 元表为重定义Lua中任意一个对象(值)的默认行为提供了一种公开入口. 如同许多OO语言的操作符重载或方法重载. Metatable能够为我们带来非常灵活的编程方式. 具体的说, Lua中每种类型的值都有都有他的默认操作方式, 如, 数字可以做加减乘除等操作, 字符串可以做连接操作, 函数可以做调用操作
2010-04-01 11:55:00
1073
原创 lua实现面向对象的特性
lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现: 1、使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有: a、将table b作为table a的一
2010-04-01 11:48:00
702
原创 Lua的语法是无歧义的吗?
Lua5.0的语法非常简洁,这从参考手册中的语法定义的规模(转换成标准BNF形式大概有100个左右的产生式)可以看出。不过简洁归简洁,它却不完全是无二义性的。下面将用具体例子揭示什么样的代码会引起歧义(执行环境是www.lua.org发布的Lua5.04)。 首先定义如下几个函数:<!--Code highlighting produced by Actipro CodeHigh
2010-03-31 21:33:00
593
原创 Lua 语言的简单介绍
1. Lua的特点 Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua最著名的应用是在暴雪公司的网络游戏WOW中。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普
2010-03-31 21:24:00
680
原创 Lua 程序设计初步
在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。 Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行
2010-03-31 21:19:00
769
转载 LUA基本应用
lua语言规则:<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> lua_State *L = lua_open(); //建立一个LUA状态机 luaopen_base(L); // 启动它 cons
2010-03-31 21:16:00
1849
原创 Lua文件处理
一。文件读存:<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> -- 似乎不支持大文件(不能超过9k?): function opensavetest() local file = io.open("c://i
2010-03-31 17:45:00
1469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人