1. 栈定义简单的图2.栈元素TValue定义说明3.GC对象定义说明4.gc链表定义5.栈和gc链表的关系答疑解惑总结 这是这个gc系列的第二篇,这一篇主要讲GC用到的数据结构,有助于理解gc的,所以放在前面1. 栈栈就是我们平时写代码接到的lua_State。在实现上是用一个数组实现的。每个成员类型是TValue,看下文详细介绍。这里不打算详细介绍栈的结构和内容,只会介绍和gc相关的一些内容
转载
2024-04-17 10:22:32
84阅读
这次简单的补充一下前面类型部分剩下的东西。
首先我们要知道当我们想为lua来编写扩展的时候,有时候可能需要一些全局变量。可是这样会有问题,这是因为这样的话,我们就无法用于多个lua状态(也就是new 多个state).
于是lua提供了三种可以代替全局变量的方法。分别是注册表,环境变量和upvalue。
其中注册表和环境变量都是table。而upva
转载
2024-05-09 16:25:49
111阅读
前言: SAP小技巧系列主要是记录一些项目中碰到的问题及解决思路与方式.这些问题可能你也碰到过,希望能给你一些帮助.正文: 最近解决一个问题时需要查看SAP登录的处理代码, (程序名 SAPMSYST 中整合了SAP的登录处理逻辑). 但是发现这个程序无法用SE38查看. 跟踪
这次紧接着上次的,将gc类型的数据分析完毕。
谢谢[url=http://www.zhuzhaoyuan.com]老朱[/url]同学的指正,这里CClosure和LClosure理解有误.
先来看闭包:
可以看到闭包也是会有两种类型,这是因为在lua中,函数不过是一种特殊的闭包而已。
[color=red]更新:这里CClosure表示是c函数,
转载
2024-06-28 07:46:45
61阅读
最近学习脱壳,喜欢上了Attach法到OEP,这样有很多好处,但是局限性也很大,例如隐藏进程。有留意过一些手动查杀木马的朋友一定有看过使用Ntsd –P PID Q命令关进程的文章,Ntsd其实就是系统附带的调试器。手上有一个旧版的灰鸽子,Ring 3下的RootKit,加载之后便DLL注入Explorer,并把该进程隐藏。经IceSword查得Explor
随着信息技术和网络科技的进步,人们的生活、工作以及学习等各项活动都越来越离不开电脑。对于经常使用电脑的朋友们来说,在电脑中创建文件是一项最基本的技能之一。但是,很多情况下,我们所创建或者书写的文件属于是一类比较重要或者隐私的,我们并不希望该类文件被其他人看到或者找到。此时,我们就可以通过一些设置,将该文件隐藏起来。隐藏的文件怎么找出来?隐藏文件,属于是电脑应用过程中的一种对于文件的保护技能之一。其
[size=large][b]文件与目录的默认权限与隐藏权限[/b][/size]
由第六章 Linux文件权限的内容我们可以知道一个文件有若干个属性,包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略提过了([color=red]chgrp, chown, c
好了,进入本文的主题——脚本加密: Lua 是一个小巧的脚本语言。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。 lua是明
转载
2024-05-22 11:06:06
626阅读
由于没学习和使用过Cocos2D,但出于工作需要,后面将要学习与使用Cocos2D。 第一次使用修改过的Cocos的时候遇到一些Lua文件是加过密的,不能看到源码,但是又可以正常的被Cocos读取执行,通过对Lua的调试可以看到读取到内存中的源码,由于调试工具的限制,无法直接将这些源码保存到磁盘,当然有一个笨办法,就是将能看到源码的文件一个一个地保存到磁盘,在没有更好的办法之前,也只能这样了。这样
转载
2024-04-18 16:06:55
134阅读
工作后,整个人已经比較松懈了。尽管一直在看lua的源代码。可是一直是比較零碎的时间,没有系统的整理,所以还是收获不多。由于近期工作也不是非常忙了,就想整理下lua的源代码学习的笔记。加深下印象,并分享给大家。先说下这系列bolg我会每周更新2-3篇,没有顺序的这些文章都是自己的浅薄的理解。有什么错误,还请各位拍砖赐教。1.关于c语言函数的声明相信大家都知道接口的重要,在lu
转载
2024-04-21 08:43:44
40阅读
Lua文件处理 0 条 浏览次数
1687
一。文件读存:
-- 似乎不支持大文件(不能超过9k?):
function opensavetest()
local file = io.open("c://in.lua", "r");
if(file) then
local data = file:read("*
转载
2024-03-14 10:12:50
63阅读
对于开发来说需要有好的生态开发库来辅助我们快速开发,而 Lua 中也有大多数我们需要的第三方开发库如 Redis、Memcached、Mysql、Http 客户端、JSON、模板引擎等。一些常见的 Lua 库可以在 github 上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。Redis 客户端lua-resty-redis
转载
2024-04-17 20:50:16
52阅读
研究生即将毕业,答辩完成后,这几天有些时间。开始写一些自己的东西,记录自己的学习历程。 --前言本着学习和交流的原则,本文的内容仅供参考,而不是权威版本,如有任何问题,欢迎指出。 --声明 跨专业考计算机研究生,至今三年已
转载
2024-08-03 16:09:26
32阅读
Java程序的源代码很容易被别人偷看,只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。 一、为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取,
转载
2024-01-04 06:03:07
40阅读
目录一、实战篇 - Lua的安装和Makefile二、实战篇 - Lua的API使用三、实战篇 - C语言中实现动态调用Lua一、实战篇 - Lua的安装和Makefile前面的篇章,我们详细的介绍了整个Lua语言的架构和实现原理。Lua是一门C语言编写的脚本语言,非常的轻巧,大部分情况下Lua的使用场景是作为宿主语言存在。web脚本、游戏脚本、物联网等场景。通俗点讲,你可以将Lua语
转载
2024-03-02 11:07:35
166阅读
#lua table 源码分析 lua使用table的单一结构,既可以做array,又可以成为hash,链表,树等结构,是一种简洁高效的使用形式。即使是对虚拟机来说,访问表项也是由底层自动统一操作的,因而用户不必考虑这种区别。表会根据其自身的内容自动动态地使用这两个部分:数组部分试图保存所有那些键介于1 和某个上限n之间的值。非整数键和超过数组范围n 的整数键对应的值将被存入散列表部分。首先看下t
转载
2024-07-23 08:41:41
72阅读
万事开头难,在开始研究lucene就如猫吃乌龟,不知从何下手。承蒙高手点化,有所心得,记之。 对于java一样面向对象的语言来说,几乎每一个java源文件都是有一个个类组成的,即使在知道lucene的工作流程之后,也不好下手,尤其对于对象之间的调用,很是迷茫。 最开始试想寻找lucene的入口点可以从main函数开始,但是,在执行main函数时,并没
lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前的5.3.4版本的Lua源码,希望对Lua的GC算法有一个较为详尽的探讨。1.Lua垃圾回收算法原理简述lua采用了标记清除式(Mark and Sweep)GC算法,算法简述:标记:每次执行GC时,先以若
上一节我们主要关注了tolua自身的初始化流程。本节我们来深入理解tolua是如何实现C#调用lua函数的。先看一个具体的例子,来自tolua自带的工程Examples 03,核心代码如下:public class CallLuaFunction : MonoBehaviour
{
private string script =
@" function luaFunc(
/*
** $Id: lua.h,v 1.329 2015/11/13 17:18:42 roberto Exp $
** Lua - A Scripting Language
** Lua.org, PUC-Rio, Brazil (http://www.lua.org)
** See Copyright Notice at the end of this file
*/ #ifnde