lua lua_settable】的更多相关文章

void lua_settable (lua_State *L, int index); Does the equivalent to t[k] = v, where t is the value at the given index, v is the value at the top of the stack, and k is the value just below the top. This function pops both the key and the value from t…
我先来吐槽一下我们这个项目. 我是做手机游戏的, cocos2dx引擎, lua编码. 这本来是一件很欢快的事情, 因为不用接触C++. C++写久了的人写lua, 就会感觉任督二脉被打通了, 代码写起来都不用太多考虑, 就像涉世太深的人吹起牛逼肆无忌惮, 总是可以自圆其说. 然而, 事与愿违, 我们客户端的兄弟仍然要编写大量C++代码, 其原因是, 配置文件, 数据结构统统由后端决定, 而后端没有人会lua, 因此数据全部放在C++, 客户端每一次存取数据都会接触到C++. 然后, 就出现了今…
替同事做了个洛奇英雄传自动染色程序,关于屏幕取色的. 因为里面他对颜色的要求比较复杂,改动也比较大,于是我让他把逻辑写在 lua 脚本里面. uses LUA, LUALIB; function lua_CheckColor(r,g,b:Integer):Boolean; var Lua : TLua; begin Lua := TLua.Create; luaopen_debug(LuaInstance); //如果要使用debug库 //  luaopen_io(LuaInstance);…
之前一直没理清lua_gettable和lua_settable的使用,今天理清了,顺便就做下笔记了.1.lua_gettable void lua_gettable (lua_State *L, int index); 把t[k] 值压入堆栈,这里的 t 是指有效索引 index 指向的值,而 k 则是栈顶放的值.这个函数会弹出堆栈上的 key,把结果放在栈上相同位置. 下面举个例子: // 将一个key放到栈顶,这个key为1.如果你的key是字符串,那就用lua_pushstring. l…
#include <stdio.h> #include <string> #include <direct.h> #include <windows.h> #include <io.h> extern "C" { #include "D:\myPath\lua\5.3\include\lua.h" #include "D:\myPath\lua\5.3\include\lauxlib.h"…
考虑使用已经有的dll,要写wrapper,使得在lua中能调用dll里的函数,嗯,参考<Programming in lua>,然后仿写luars232. 一.函数定义 先分析一个函数的写法,其它函数类似: /* * error, written_len = port:write(data [, timeout_ms]) */ static int lua_port_write(lua_State *L) { ; ; unsigned ; unsigned ; size_t len = ;…
ok,前面准备给一个dll写wrapper,写了篇日志,看似写的比较明白了,但是其实有很多米有弄明白的.比如PIL中使用的element,key,tname,field这些,还是比较容易混淆的.今天正好搞搞清楚. 1.stack 这个应该不用多讲了,C和lua中的交互就是基于一个stack的,而且每次lua调用一个c函数,都是给分配一个新的stack.它的原型: typedef int (*lua_CFunction) (lua_State *L); stack中的基本单元在PIL中多成为ele…
Lua 与 C 的交互 Lua是一个嵌入式的语言,它不仅可以是一个独立运行的程序,也可以是一个用来嵌入其它应用的程序库. C API是一个C代码与Lua进行交互的函数集,它由以下几部分构成: 1.  读写Lua全局变量的函数: 2.  调用Lua函数的函数: 3.  运行Lua代码片段的函数: 4.  注册C函数后可以在Lua中被调用的函数: 在C和LUA之间交互的关键在于一个虚拟栈(virtual stack),数据交互通过栈进行.操作数据时,首先将数据拷贝到栈上,然后获取数据,栈中的每个数据…
花了几天时间看了下cocos2d-x lua绑定那块,总算是基本搞明白了,下面分三部分解析lua绑定: 一.lua绑定主要用到的底层函数 lua绑定其本质就是有一个公用的lua_Stack来进行C和Lua之间的值传递,在路径[项目根目录]\frameworks\cocos2d-x\external\lua\luajit\include下有个lua.h文件,大部分lua绑定底层函数以及相关的常量都在这里. 1.lua堆栈常量 #define LUA_REGISTRYINDEX (-10000) /…
Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes 云风 译 www.codingnow.com Copyright © 2006 Lua.org, PUC-Rio. All rights reserved. 1 - 介绍 Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施. Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持.…