- 博客(88)
- 收藏
- 关注
原创 设置csdn blog客户端
由于CSDN使用的是Metaweblog 协议,一般的客户端不能自动识别,所以需要手动来配置。无论是什么客户端只要支持该协议既可以通过客户端来发布CSDN的文章。配置过程如下: A.添加博客账户的时候: URL为: http://blog.csdn.net/javaws/ 账号为:javaws 密码:****** 这里注意:帐号和url地址要相对应。 B. 选择协议(API)时,按以下配置填写: 协议API选择:Metaweblog API 在Remote posting
2010-06-05 11:46:00
2602
1
原创 四种流行的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
1198
原创 如何使用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
2083
原创 Lua中为你的表table使用默认值
你是否希望你使用的table, 当他为nil时会以一个默认值来代替. 那么参照下面的方法. 我使用了一个count table当我迭代其他一些数据结构时可以为他们计数.<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
2010-04-01 15:58:00
1388
原创 在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
2043
原创 使用 Lua 编写可嵌入式脚本
尽管诸如 Perl、Python、PHP 和 Ruby 之类的解释性编程语言日益被 Web 应用程序广泛地采纳 —— 它们已经长期用来实现自动化系统管理任务 —— 但是诸如 C、C++ 之类的编译性编程语言依然是必需的。编译性编程语言的性能是脚本语言所无法企及的(只有手工调优的汇编程序的性能才能超过它),有些软件 —— 包括操作系统和设备驱动程序 —— 只能使用编译代码来高效地实现。实际上,当软件
2010-04-01 15:53:00
1181
原创 学习笔记 : Lua 编程技巧
应该尽量使用 local 变量而非 global 变量。这是 Lua 初学者最容易犯的错误。global 变量实际上是放在一张全局的 table 里的。global 变量实际上是利用一个 string (变量名作 key) 去访问这个 table 。虽然Lua5 的 table 效率很高 ,但是相对于 local 变量,依然有很大的效率损失。local 变量是直接通过 Lua 的堆栈访问的。有些
2010-04-01 15:44:00
1042
原创 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
968
原创 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
995
原创 如何安全的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
1575
原创 Lua中如何使用模式匹配
什么是正则表达式? 简单的说,正则表达式(我们通常称之为 Regex)就是符合某些规则的字符串. 这里是对正则表达式一个非常好的介绍. Lua 宣称自己是实现的是 ""patterns" 而不是 "regexes" (其实是一码事) . 在看其官方文档的时候可能会给人造成困扰,因为他从来不提 "regular expressions"; 你可以在 http://www.lua.o
2010-04-01 15:36:00
1558
原创 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
1423
原创 在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
1250
原创 向lua虚拟机传递信息
当程序逻辑交给脚本跑了以后,C/C++ 层就只需要把必要的输入信息传入虚拟机就够了。当然,我们也需要一个高效的传递方法。 以向 lua 虚拟机传递鼠标坐标信息为例,我们容易想到的方法是,定义一个 C 函数 get_mouse_pos 。当 lua 脚本中需要取得鼠标坐标的时候,就可以调用这个函数。 但这并不是一个好方法,因为每次获取鼠标坐标,都需要在虚拟机和 native code 间
2010-04-01 15:31:00
1316
原创 在C++中集成Lua脚本
为什么要用Lua作脚本? 使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需
2010-04-01 14:35:00
907
原创 在C++中集成Lua脚本
为什么要用Lua作脚本? 使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需
2010-04-01 14:32:00
959
原创 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
2771
原创 如何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
1962
原创 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
1313
原创 在Lua中管理C对象
今天同事在设计引擎的脚本接口时遇到一个问题:需要把 C 对象指针放到 Lua 中,允许 Lua 保存这个指针,并传递给其它模块。 这是给 Lua 写 C 扩展时常见的问题,撇开如何如何将对象的方法导入 Lua 这个更复杂的问题不谈,我主要想说说 C 对象的生命期管理的问题。 一开始的设计是把对象的销毁方法也导入 Lua ,由脚本程序员手工管理。这是很明显的 C 程序员的思路:谁构造谁释放。但在这里
2010-04-01 14:10:00
1179
原创 通过例子学习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
1074
原创 通过例子学习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
686
原创 通过例子学习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
621
原创 通过例子学习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
550
原创 通过例子学习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
526
原创 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
1025
原创 Lua 标准库 - 操作系统处理(operating system facilities)
这个库通过表os实现 1、os.clock () 功能:返回一个程序使用CPU时间的一个近似值 2、os.date ([format [, time]]) 功能:返回一个按format格式化日期、时间的字串或表 若设置time参数,则按time指定的时间格式化,否则按当前时间格式化 参数: format: "!":按格林尼治时间进行格式化。 "
2010-04-01 13:32:00
4421
原创 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
1460
原创 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
847
原创 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
710
原创 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
1056
原创 Lua 标准库 - 模块(Modules)
包库为Lua提供简易的加载及创建模块的方法,由require、module方法及package表组成 1、module (name [, ···]) 功能:建立一个模块。 当package.loaded[name]中存在时,当中的表作为module; 当在全局表中存在name指定的表时,此表作为module; 当以前两种情况都不存表name时,将新建一个表,并使其作为
2010-04-01 13:18:00
1083
原创 Lua的多任务机制——协程(coroutine)
并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制。大致上有这么两种多任务技术,一种是抢占式多任务(preemptive multitasking),它让操作系统来决定何时执行哪个任务。另外一种就是协作式多任务(cooperative multitasking),它把决定权交给任务,让它们在自己认为合适的时候自愿放弃执行。这两种多任务方式各有优缺点,前者固有的同步问
2010-04-01 12:05:00
922
1
原创 Metatable In Lua 浅尝辄止
什么是Metatable Lua中Metatable这个概念, 国内将他翻译为元表. 元表为重定义Lua中任意一个对象(值)的默认行为提供了一种公开入口. 如同许多OO语言的操作符重载或方法重载. Metatable能够为我们带来非常灵活的编程方式. 具体的说, Lua中每种类型的值都有都有他的默认操作方式, 如, 数字可以做加减乘除等操作, 字符串可以做连接操作, 函数可以做调用操作
2010-04-01 11:55:00
1048
原创 lua实现面向对象的特性
lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现: 1、使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有: a、将table b作为table a的一
2010-04-01 11:48:00
649
原创 Lua的语法是无歧义的吗?
Lua5.0的语法非常简洁,这从参考手册中的语法定义的规模(转换成标准BNF形式大概有100个左右的产生式)可以看出。不过简洁归简洁,它却不完全是无二义性的。下面将用具体例子揭示什么样的代码会引起歧义(执行环境是www.lua.org发布的Lua5.04)。 首先定义如下几个函数:<!--Code highlighting produced by Actipro CodeHigh
2010-03-31 21:33:00
573
原创 Lua 语言的简单介绍
1. Lua的特点 Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua最著名的应用是在暴雪公司的网络游戏WOW中。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普
2010-03-31 21:24:00
647
原创 Lua 程序设计初步
在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。 Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行
2010-03-31 21:19:00
735
转载 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
1801
原创 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
1440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人