理解LuaLua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。Lua的这个“虚拟栈”解决了C/C++程序与Lua程序通信的两大问题:Lua使用垃圾回收,而C/C++需要手动管理内存。Lua使用动态类型,而C/C++使用的是静态类型。因 为这个栈在Lua虚拟机内部,当一个Lua的变量放在栈里面的时候,虚拟机可以知道它有没有被宿主程序
转载 2024-08-03 15:30:09
364阅读
lua_newtablevoid lua_newtable (lua_State *L);创建一个空 table ,并将之压入堆栈。 它等价于 lua_createtable(L, 0, 0) 。  lua_gettopint lua_gettop (lua_State *L);返回栈顶元素的索引。 因为索引是从 1 开始编号的, 所以这个结果等于堆栈上的元素个数(因此返回 0 表示堆栈
转载 2月前
327阅读
init_by_lua http set_by_lua server, server if, location, location if rewrite_by_lua http, server, location, location if access_by_lua http, server, location, location if content_by_lua location, locat
转载 2024-04-11 09:34:59
44阅读
基于上述文章,做一些补充:将C代码编译为DLL文件,让LUA代码调用://mytestlib.cpp#include #include #include #include #include //待注册的C函数,该函数的声明形式在上面的例子中已经给出。//需要说明的是,该函数必须以C的形式被导出,因此extern "C"是必须的。//函数代
--[[Description: FileName:bit.lua This module provides a selection of bitwise operations.History: Initial version created by 阵雨 2005-11-10...
转载 2014-08-20 11:31:00
254阅读
2评论
Lua 脚本设计目的:为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua特性:轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。其它特性: 支持面向过程(procedure-oriented)编
转载 2024-10-28 21:06:49
112阅读
前言前置准备目标分析逆向加密逻辑定位sign与key解密luac反编译luajit的bytecode开启上帝模式前言    看了fatezero的《阴阳师:一个非酋的逆向旅程》后,受益匪浅。特别是关于opcode映射关系一节,处理的很精妙。对手头上的游戏不思议迷宫,技痒的不行。于是上周周六花了整个下午的时间进行了研究。注意本文中针对安卓版本。前置准备  &n
转载 2024-03-18 23:01:56
314阅读
文章目录一、运算概述二、运算及其用途1. 按与运算符(&)2.按或运算符(|)3.异或运算符(^)4.取反运算符 (~)5.左移运算符(<<)6.右移运算符(>>)7.复合赋值运算符三、运算相关的算法题解例1:判断一个正整数 n 是否为 2 的幂次方例2:判断 正整数 n 的二进制表示中有多少个 1例3:找出一个只出现一次的数例4.找出两个只出现一次的数
Lua通过一个“虚拟栈”(Lua State)与C/C++程序进行数据交互。当在Lua里面操作这个栈的时候,每次操作的都是栈的顶部。而Lua的C API则有更多的控制权,可非常灵活地操纵这个栈的任意位置。c/c++调用lua实际上是:c/c++获取全局表中的lua变量或函数,然后把数据放入栈中,lua再去栈中取数据,然后返回数据对应的值到栈顶,再由栈顶返回c++。lua调c/c++也一样:先将c/
lua中我们无法对两个table进行操作,例如两个表相加、相减、串连等操作。因此 Lua 提供了元表(Metatable)和元方法,允许我们操作改变table,每个操作关联了对应的元方法。设置元表setmetatable(mytable,mymetatable) 对指定 mytable设置元表(mymetatable)。mytable={} mymetatable={} setmetatable
转载 2024-02-23 21:20:01
137阅读
作为配置语言是lua的一个重要应用,lua文件在配置应用中非常灵活,可以直接读取文件中的全局量的值,也可以读取表以及嵌套表。一、lua使用方式个人理解,根据应用的场景和复杂程度,可以分为以下几种情况:1、场景较简单,lua文件中使用全局量配置值如:test.lua-- configguration file for probram c width = 200 height = 300 back
转载 2024-03-07 09:51:32
159阅读
 1.cjson.encode cjson.decode 和System.IO.File进行json文件的读写。m.JsonPath = 'Assets/debug_cfg.json' local text = File.ReadAllText(m.JsonPath) local jsonInfos = cjson.decode(text) m.templateKey
转载 2023-06-11 00:00:51
416阅读
--[[{2147483648,1073741824,536870912,268435456,134217728,67108864,33554432,16777216, 8388608,4194304,2097152,1048576,524288...
转载 2018-04-23 15:33:00
215阅读
2评论
======================使wax框架真正兼容系统==========================苹果强制要求所有新提交的应用必须兼容,但原来使用lua的框架wax是不支持的。为此,在github上一番搜索,发现两个兼容的wax的分支。如下:https:...
转载 2014-05-16 18:12:00
117阅读
2评论
这个库通过表os实现os.clock ()功能:返回一个程序使用CPU时间的一个近似值例如:local x = os.clock(); print(os.clock()) local s = 0; for i = 1, 100000000 do s = s + i; end print(string.format("elapsed time : %.2f\n", os.clock()
转载 2023-07-31 13:31:00
95阅读
(1)lua 和 C++之间的交互的基本知识:      lua 和 C++ 之间的数据交互通过堆栈进行,栈中的数据通过索引值进行定位,(栈就像是一个容器一样,放进去的东西都要有标号)其中栈顶是-1,栈底是1,也就是第 1 个入栈的在栈底;也可以这么说:正数表示相对于栈底的位置(位移),负数表示相对于栈顶的位置(位移);(2)计算和清空栈
转载 2023-09-21 09:27:31
120阅读
操作系统库包含了文件管理,系统时钟等等与操作系统相关信息。这些函数定义在表(table)os中。定义该库时考虑到Lua的可移植性,因为Lua是以ANSI C写成的,所以只能使用ANSI定义的一些标准函数。许多的系统属性并不包含在ANSI定义中,例如目录管理,套接字等等。所以在系统库里并没有提供这些功能。另外有一些没有包含在主体发行版中的Lua库提供了操作系统扩展属性的访问。例如posix库,提供了
转载 2023-07-07 14:40:59
90阅读
回答(26)2 years agofunction number_format(string,decimals=2,decimal=',',thousands='.',pre='R$ ',pos=' Reais'){ var numbers = string.toString().match(/\d+/g).join([]); numbers = numbers.padStart(decimals
基础: lua与C语言使用“栈”交互数据,“栈”是一种先进后出的机制,“压栈”就是将一个元素放到栈顶,lua_push* 函数就是将不同类型压入到栈中。圧栈的第一个元素编号为1,第二个元素编号为2,以此类推到N,当然也可以使用负数表示,-1表示栈顶(最上面的元素,也是倒数第一个元素),-2表示倒数第二个元素,以此类推到-N。lua调用c函数时(如上例的mylua.add(20, 30)),栈的功能
转载 2024-10-28 18:50:45
39阅读
前言 C语言提供常见的运算符有算术运算符、关系运算符、逻辑运算符、运算符、赋值运算符等。这些运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。下面主要以按运算符为例。按逻辑运算符 4个按逻辑运算符都用于整形数据,包括char。之所以叫作按运算符,是因为这些操作都是针对每一个进行,不影响在左右两边的。不要把这些运算符与常规运算符(&&、||和!)混淆,常规操作运算符
  • 1
  • 2
  • 3
  • 4
  • 5