自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 2591 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 1189

原创 如何使用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 2063

原创 Lua中为你的表table使用默认值

你是否希望你使用的table, 当他为nil时会以一个默认值来代替. 那么参照下面的方法.  我使用了一个count table当我迭代其他一些数据结构时可以为他们计数.<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 

2010-04-01 15:58:00 1377

原创 在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 2015

原创 使用 Lua 编写可嵌入式脚本

尽管诸如 Perl、Python、PHP 和 Ruby 之类的解释性编程语言日益被 Web 应用程序广泛地采纳 —— 它们已经长期用来实现自动化系统管理任务 —— 但是诸如 C、C++ 之类的编译性编程语言依然是必需的。编译性编程语言的性能是脚本语言所无法企及的(只有手工调优的汇编程序的性能才能超过它),有些软件 —— 包括操作系统和设备驱动程序 —— 只能使用编译代码来高效地实现。实际上,当软件

2010-04-01 15:53:00 1164

原创 学习笔记 : Lua 编程技巧

应该尽量使用 local 变量而非 global 变量。这是 Lua 初学者最容易犯的错误。global 变量实际上是放在一张全局的 table 里的。global 变量实际上是利用一个 string (变量名作 key) 去访问这个 table 。虽然Lua5 的 table 效率很高 ,但是相对于 local 变量,依然有很大的效率损失。local 变量是直接通过 Lua 的堆栈访问的。有些

2010-04-01 15:44:00 1024

原创 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 964

原创 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 987

原创 如何安全的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 1557

原创 Lua中如何使用模式匹配

什么是正则表达式?  简单的说,正则表达式(我们通常称之为 Regex)就是符合某些规则的字符串.  这里是对正则表达式一个非常好的介绍. Lua 宣称自己是实现的是 ""patterns" 而不是 "regexes" (其实是一码事) . 在看其官方文档的时候可能会给人造成困扰,因为他从来不提 "regular expressions";  你可以在 http://www.lua.o

2010-04-01 15:36:00 1542

原创 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 1414

原创 在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 1234

原创 向lua虚拟机传递信息

当程序逻辑交给脚本跑了以后,C/C++ 层就只需要把必要的输入信息传入虚拟机就够了。当然,我们也需要一个高效的传递方法。  以向 lua 虚拟机传递鼠标坐标信息为例,我们容易想到的方法是,定义一个 C 函数 get_mouse_pos 。当 lua 脚本中需要取得鼠标坐标的时候,就可以调用这个函数。  但这并不是一个好方法,因为每次获取鼠标坐标,都需要在虚拟机和 native code 间

2010-04-01 15:31:00 1301

原创 在C++中集成Lua脚本

为什么要用Lua作脚本?  使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需

2010-04-01 14:35:00 897

原创 在C++中集成Lua脚本

为什么要用Lua作脚本?  使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需

2010-04-01 14:32:00 941

原创 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 2738

原创 如何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 1865

原创 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 1282

原创 在Lua中管理C对象

今天同事在设计引擎的脚本接口时遇到一个问题:需要把 C 对象指针放到 Lua 中,允许 Lua 保存这个指针,并传递给其它模块。 这是给 Lua 写 C 扩展时常见的问题,撇开如何如何将对象的方法导入 Lua 这个更复杂的问题不谈,我主要想说说 C 对象的生命期管理的问题。 一开始的设计是把对象的销毁方法也导入 Lua ,由脚本程序员手工管理。这是很明显的 C 程序员的思路:谁构造谁释放。但在这里

2010-04-01 14:10:00 1174

原创 通过例子学习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 1047

原创 通过例子学习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 672

原创 通过例子学习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 610

原创 通过例子学习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 539

原创 通过例子学习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 516

原创 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 1014

原创 Lua 标准库 - 操作系统处理(operating system facilities)

这个库通过表os实现  1、os.clock ()  功能:返回一个程序使用CPU时间的一个近似值  2、os.date ([format [, time]])  功能:返回一个按format格式化日期、时间的字串或表  若设置time参数,则按time指定的时间格式化,否则按当前时间格式化  参数:  format:  "!":按格林尼治时间进行格式化。  "

2010-04-01 13:32:00 4400

原创 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 1451

原创 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 830

原创 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 687

原创 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 1041

原创 Lua 标准库 - 模块(Modules)

包库为Lua提供简易的加载及创建模块的方法,由require、module方法及package表组成  1、module (name [, ···])  功能:建立一个模块。  当package.loaded[name]中存在时,当中的表作为module;  当在全局表中存在name指定的表时,此表作为module;  当以前两种情况都不存表name时,将新建一个表,并使其作为

2010-04-01 13:18:00 1069

原创 Lua的多任务机制——协程(coroutine)

并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制。大致上有这么两种多任务技术,一种是抢占式多任务(preemptive multitasking),它让操作系统来决定何时执行哪个任务。另外一种就是协作式多任务(cooperative multitasking),它把决定权交给任务,让它们在自己认为合适的时候自愿放弃执行。这两种多任务方式各有优缺点,前者固有的同步问

2010-04-01 12:05:00 917 1

原创 Metatable In Lua 浅尝辄止

什么是Metatable  Lua中Metatable这个概念, 国内将他翻译为元表. 元表为重定义Lua中任意一个对象(值)的默认行为提供了一种公开入口. 如同许多OO语言的操作符重载或方法重载. Metatable能够为我们带来非常灵活的编程方式.  具体的说, Lua中每种类型的值都有都有他的默认操作方式, 如, 数字可以做加减乘除等操作, 字符串可以做连接操作, 函数可以做调用操作

2010-04-01 11:55:00 1043

原创 lua实现面向对象的特性

lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现:  1、使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有:  a、将table b作为table a的一

2010-04-01 11:48:00 636

原创 Lua的语法是无歧义的吗?

Lua5.0的语法非常简洁,这从参考手册中的语法定义的规模(转换成标准BNF形式大概有100个左右的产生式)可以看出。不过简洁归简洁,它却不完全是无二义性的。下面将用具体例子揭示什么样的代码会引起歧义(执行环境是www.lua.org发布的Lua5.04)。  首先定义如下几个函数:<!--Code highlighting produced by Actipro CodeHigh

2010-03-31 21:33:00 562

原创 Lua 语言的简单介绍

1. Lua的特点  Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。  Lua最著名的应用是在暴雪公司的网络游戏WOW中。  Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普

2010-03-31 21:24:00 632

原创 Lua 程序设计初步

在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。  Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。  在Lua中,一切都是变量,除了关键字。请记住这句话。  I. 首先是注释  写一个程序,总是少不了注释的。  在Lua中,你可以使用单行注释和多行

2010-03-31 21:19:00 725

转载 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 1784

原创 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 1431

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除