lua相关
文章平均质量分 82
whitehack
这个作者很懒,什么都没留下…
展开
-
【小技巧】如何修改 LuaPlus中的 Lua 5.1 的引擎,让Lua支持中文变量名、混合变量名
<br />原贴<br />http://blog.csdn.net/chrisxie/archive/2008/09/29/2998290.aspx<br />(原贴中的luaplus是老版本 下面我贴的代码是新版的)<br /> <br /> 最近在倒腾 Lua 脚本引擎。Lua 现在广泛用于各种游戏、PSP中,速度极快,与 C++ 宿主代码“相处”能力强,还有第三方增强工程如 LuaPlus, LuaBind 等的支持,笔者正是在使用 LuaPlus 这个不错的 Lua C++ 封装,内置 Lua转载 2011-05-12 07:11:00 · 4483 阅读 · 0 评论 -
luaplus 与官方文档慢慢扯(二)
<br />堆栈操作相关函数<br /> GetTop() - Mirrors lua_gettop(). SetTop(int index) - Mirrors lua_settop(). PushValue(int index) - Mirrors lua_pushvalue(). PushValue(LuaStackObject& object) - Mirrors lua_pushvalue(). Remove(int index) - Mirrors lua_remove().原创 2011-05-07 09:20:00 · 2836 阅读 · 0 评论 -
LuaPlus官方文档
<br />LuaPlus for Lua 5.1 Distribution<br />Build 1100+ (May 24, 2008)Enhancements to Core Lua Functionality<br />http://luaplus.org/<br />Author: Joshua Jensen (jjensen@workspacewhiz.com)Overview<br />The LuaPlus distribution contains some modifications原创 2011-05-07 09:47:00 · 4966 阅读 · 0 评论 -
luaplus 与官方文档慢慢扯(三)
以下未知 占位 Class: LuaStateAuto/Owner (Unmanaged Only)LuaStateAuto is an auto pointer encapsulation for a LuaState pointer. When the LuaStateAuto goes out of scope, LuaState::Destroy() is automatically called on the contained state. In a Release build原创 2011-05-07 10:13:00 · 2559 阅读 · 0 评论 -
luaplus 与官方文档慢慢扯(四)
<br /> Value Storage(值储存? 与lua交换值)<br /> <br />一般使用lua c api push* 来把值压入堆栈<br />LuaObjects 提供了另一种实现 它不是基于堆栈的 (具体如何使用 暂时不懂 以后再回头看)<br />使用Assign*()系列函数 把值分发进LuaObject <br />下面是 Assign*系列函数<br /> AssignNil(LuaState* state)AssignBoolean(LuaState* state, boo原创 2011-05-08 00:39:00 · 2834 阅读 · 0 评论 -
luaplus 与官方文档慢慢扯(五)
<br /> Registering Callbacks(注册lua c函数)<br />函数原型<br />int Callback(LuaState* state); <br /> <br />作为一种替代机制 lua stack 是通过LuaStack类提供的<br />LuaPlus的回调函数使用了一种简单的函数机制 可以让全局函数 静态函数 非虚成员函数 与虚成员函数 成为回调函数<br /> <br />下面是一个示例 例子很简单就不注释了 (唯一需要注意的是 LuaStack args原创 2011-05-08 02:19:00 · 3911 阅读 · 0 评论 -
luaplus 与官方文档慢慢扯(六)
<br /> Calling Functions(调用lua函数)<br /> LuaObject 尝试简化Lua API 接口函数它做到了完全屏蔽掉堆栈方面的操作 一般情况下,调用Lua的函数可以在一行代码中完成Recommended Style(推荐风格)利用一些c++模板的技巧,使我们调用lua函数好像是在调用普通的c++函数LuaStateOwner state;state->DoString("function Add(x, y) return x + y end");LuaFunctio原创 2011-05-08 02:47:00 · 2366 阅读 · 0 评论 -
luaplus 与官方文档慢慢扯(七)
<br /> Class: LuaTableIterator(lua table 迭代类 )<br />LuaPlus 提供了一个名为 LuaTableIterator 的类<br />他的作用是让我们在c++内遍历lua table时比使用标准lua CAPI更简单 方便 也更安全<br />(The iterator is not STL compliant in its current form.)<br />使用起来真的非常简单<br /> LuaStateOwner state; stat原创 2011-05-08 03:29:00 · 2300 阅读 · 0 评论 -
Lua struct
http://www.inf.puc-rio.br/~roberto/struct/teststruct http://www.inf.puc-rio.br/~roberto/struct/teststruct经过测试,可以直接编译进官方lua 与 luajit内Library for Converting Data to and from C St原创 2012-01-03 18:03:56 · 9277 阅读 · 1 评论 -
emeditor lua.esy lua语法文件,肯定好多人找不到
; EmEditor Syntax File;; To import this file to an existing configuration, select Configuration; under the Tool menu, select Define Configurations, select a configuration; you want to import to, p原创 2015-04-20 03:37:15 · 4773 阅读 · 0 评论 -
cocos studio lua 项目没有 print 输出解决办法
启发帖 http://blog.k-res.net/archives/1833.htmlAppDelegate.cpp 加上一句 engine->executeString("print = release_print");搞定!纠结了整整2天! 希望对同样纠结的同学有用!原创 2015-06-20 23:27:27 · 8495 阅读 · 8 评论 -
luaplus 与官方文档慢慢扯(一)
<br />此人文笔很烂 将就看吧<br /> <br />LuaState 是 c++版本的 Lua_State <br />大多数 lua的普通c函数 都基础在 LuaState内<br />两者效率相差不大<br /> <br /> <br />创建 LuaState 实例 <br /> <br />LuaState::Create() 静态函数用于创建一个 LuaState 实例<br />此函数有一个可选参数 <br />如果为true 则加载lua的标准库 同 luaL_openlibs(L原创 2011-05-07 09:05:00 · 3533 阅读 · 0 评论 -
vs2008 编译 luaplus 静态库
<br />转贴地址 http://www.uipower.com/bbs/viewthread.php?tid=152050<br /> <br /> <br /> <br /><br />最近在做一个项目,使用lua做脚本, 选luaplus做解析器集成到程序中,上网找 luaplus库都不是最新 ,就到http://luaplus.org/去下载最新 <br /><br />按网站上 说法 安装git 执行以下命令:<br /> git clone http://git.luaplus.org/lu转载 2011-05-07 08:17:00 · 3076 阅读 · 0 评论 -
Lua语言中pairs和ipairs的区别
<br /><br />tbl = {"alpha", "beta", ["one"] = "uno", ["two"] = "dos"}<br />for key, value in ipairs(tbl) do<br />print(key, value)<br />end<br />--pairs()<br />--pairs()函数基本和ipairs()函数用法相同, 区别在于pairs()可以遍历整个table, 即包括数组及非数组部分.<br />-->如有pairs迭代输出如下:<br />-转载 2011-04-16 17:51:00 · 2615 阅读 · 1 评论 -
LuaPlus 载入指定库的方法
<br />默认情况下<br /> <br />LuaState* state = LuaState::Create(true);<br />是载入了所有基础库<br />LuaState* state = LuaState::Create();<br />这样就什么库都不载入 不过..连基础库都没了...<br /> <br /> <br />可是 一般情况下又不需要这么多库 <br />所以 改下 luaplus.h 头文件<br /> <br /><br />LUA_EXTERN_C_BEGIN<b原创 2011-05-13 17:17:00 · 2332 阅读 · 0 评论 -
测试两个不同lua state 使用 xmove
<br />void lua_xmove (lua_State *from, lua_State *to, int n);<br /> <br />Exchange values between different threads of the same global state.<br /> <br />This function pops n values from the stack from, and pushes them onto the stack to.<br />官方文档 介绍的 是 可以原创 2011-05-21 15:16:00 · 4142 阅读 · 1 评论 -
用vc 编译 luajit 动态库dll 与 静态库lib
<br />开始菜单内找到VC的命令提示符 <br />并且 cd 到 你的luajit src目录<br />我的是 E:/Lua/LuaJIT-2.0.0-beta7/src<br /> <br />Setting environment for using Microsoft Visual Studio 2010 x86 tools.D:/Program Files/Microsoft Visual Studio 10.0/VC>cd E:/Lua/LuaJIT-2.0.0-beta7/src原创 2011-05-28 01:51:00 · 7253 阅读 · 3 评论 -
简单迭代器 与 泛型for
<br />初学lua很多地方似懂非懂<br /> <br />保存下来以后查看<br /> <br />环境是 luaforwidows<br />编辑器用的scite lfw自带了<br /> <br /> <br /><br />function list_iter (t)--迭代器<br />local i = 0<br />local n = table.getn(t)--list_iter 是一个工厂?<br />return function ()--返回的是函数<br />--pri原创 2011-04-13 22:06:00 · 1789 阅读 · 0 评论 -
无状态迭代器
<br /> <br />function iter (a, i) i = i + 1 local v = a[i] if v then return i, v --迭代函数返回2个值 索引与值 endendfunction ipairs (a) --ipairs lua简单实现 return iter, a, 0 --返回3个值 迭代函数,状态常量a,控制变量初始值0enda = {"one", "two", "three"}--无状态的迭代器是指不保留任原创 2011-04-14 01:42:00 · 2355 阅读 · 4 评论 -
协同相关 协同的基础
<br />co = coroutine.create(function () --创建协同程序 print("hi coroutine")end)print(co) --> thread: 0x8071d98 返回值 co 是thread类型 --刚创建的协同程序默认状态是 挂起状态(suspended)print("hi``?");print(coroutine.status(co)) --检查协同程序的状态print(coroutine.resume(原创 2011-04-14 20:09:00 · 1800 阅读 · 0 评论 -
__index __newindex metamethod
<br />-- 13.4.1 The __index Metamethod 有点c++继承的意思-- create a namespaceWindow = {}-- create the prototype with default valuesWindow.prototype = {x=0, y=0, width=100, height=101, } --定义一个原型表 默认值-- create a metatableWindow.mt = {} --创建 metatable原创 2011-04-17 16:43:00 · 2251 阅读 · 1 评论 -
协同程序 过滤器
<br />function receive (prod) --来接受数据 恢复生产者协同程序 等待他发送参数回来 local status, value = coroutine.resume(prod) return valueendfunction send (x) --停止本协同程序 返回数据给 resume coroutine.yield(x)endfunction producer () --生产者协同程序 读取数据 发原创 2011-04-14 20:34:00 · 1667 阅读 · 0 评论 -
metatable 算术运算 关系运算 库定义的 metamethods
<br />Set = {}Set.mt = {}function Set.new (t) local set = {} setmetatable(set, Set.mt) for _, l in ipairs(t) do set[l] = true-- print("set",_,l); end --第一个返回值 索引 作为 _ 被忽略使用 -- 使用 l 值 作为 新set表的 下表索引 设置为true 说明存在这个值 return se原创 2011-04-17 16:22:00 · 1945 阅读 · 0 评论 -
监控表
<br />--13.4.4 监控表t = {} -- original table (created somewhere) --这是原始表 我们要监控的-- keep a private access to original tablelocal _t = t --保存起来 赋值给 _t-- create proxyt = {}--创建代理表-- create metatablelocal mt = { __index = funct原创 2011-04-17 17:07:00 · 1866 阅读 · 0 评论 -
保存table
<br /> --保存table 保存带有循环的tablefunction basicSerialize (o) if type(o) == "number" then return tostring(o) else -- assume it is a string return string.format("%q", o) endendfunction save (name, value, saved)原创 2011-04-16 15:37:00 · 1935 阅读 · 0 评论 -
redis lua and nodejs
redis lua--getAndUpdateRpcConfig.lualocal test = { aa=1, bb='bb'}-- redis.call('set','keykey','myval')return cjson.encode(test);使用 var redisluasha = new RedisLuaSha(this.rpcredis);原创 2016-06-04 16:01:50 · 2254 阅读 · 0 评论