搜索到与相关的文章
各行各业

第二人生的源码分析(108)脚本的语法分析(1)

当玩家书写一个脚本时,如果写错了脚本,那么肯定运行不了。现在就来分析怎么样确保脚本是正确的问题,如果不正确就需要显示出来那里不正确。脚本是否正确,其实是根据脚本的语法来判断的。那么又怎么样来构造语法分析的程序呢?在第二人生里是通过使用程序bison.exe来创建的。下面先来看看bison.exe是做什么东西的:Yacc代表YetAnotherCompilerCompiler。Yacc的GNU版叫做Bison。它是一种工具,将任何一种编程语言的所有语法翻译成

系统 2019-08-12 01:32:39 2643

操作系统

关于hook设置函数如何支持多核CPU的一个说明

前两天看Intel网站上贴了一篇关于设置HOOK的文章,讲到在多核CPU上,由于执行代码可能存在CPUCACHE里,因此当更改了函数起始6字节后,CPUCACHE里的对应内容并没有被修改,所以需要调用FlushInstructionCache()函数来更新CACHE。更新后的代码如下,增加的代码以粗体标出了。/**通过地址来设置某个函数的钩子函数@paramHANDLEhApiHook-由ApiHook_Init()函数生成的句柄@paramDWORDdw

系统 2019-08-12 01:32:34 2643

各行各业

【OpenCV】图像像素随机化:雪花漫天飞

近来经常和心理系做实验,总是有各种“什么什么随机化,刺激的物理性质保持一样。。”的需求。之前做《去掩蔽》的实验时,有一套图片就是做的像素随机化,这是最简单的随机化了。当时图像只有两种像素,灰的和深灰的,而且深灰的比较少。于是我就统计了深灰像素点的个数,然后在一张同样大的灰色图片中的随机位置洒深灰像素点。intpix_count=0;for(inti=0;i

系统 2019-08-12 01:32:23 2643

各行各业

第二人生的源码分析(六十七)LLXMLNode使用Expat

前面介绍了什么是expat库,也介绍怎么使用它来打开XML文件进行分析,接着下来就来分析第二人生里是怎么样使用它。详细的函数代码如下:#001//static#002boolLLXMLNode::parseFile(#003LLStringfilename,#004LLXMLNodePtr&node,#005LLXMLNode*defaults_tree)#006{下面开始调用文件函数打开文件。#007//Readfile#008FILE*fp=LLFil

系统 2019-08-12 01:32:07 2643

Python

python中的global语句用法

在初学python时想要在函数内修改一个变量的引用,往往会出现如下情况:num=1deffun():num=2print(num)fun()print(num)#输出结果为2#1想改变num的值,在函数中修改后,在函数中调用返回值为修改后的值,但用print输出num的值仍为1。此时在函数内部,num的值是局部变量,而函数外部的num是全局变量。想要修改全局变量此时就应该引入global语句global语句的用法语法:声明此变量为全局变量。用法:globa

系统 2019-09-27 17:57:43 2642

Python

用Python实现QQ游戏大家来找茬辅助工具

好久没写技术相关的文章,这次写篇有意思的,关于一个有意思的游戏――QQ找茬,关于一种有意思的语言――Python,关于一个有意思的库――Qt。这是一个用于QQ大家来找茬(美女找茬)的辅助外挂,开发的原因是看到老爸天天在玩这个游戏,分数是惨不忍睹的负4000多。他玩游戏有他的乐趣,并不很在意输赢,我做这个也只是自我娱乐,顺便讨他个好,毕竟我们搞编程的实在难有机会在父辈面前露露手。本来是想写个很简单的东西,但由于过程中老爸的多次嘲讽,逼得我不得不尽力完善,最后

系统 2019-09-27 17:56:56 2642

Python

python递归解析嵌套json

json数据示例{"node":"a","subNodes":[{"node":"a1","subNodes":[{"node":"a11","subNodes":[{"node":"a111","subNodes":[]},{"node":"a112","subNodes":[]}]},{"node":"a12","subNodes":[]}]},{"node":"a2","subNodes":[]}]}{"node":"b","subNodes":[{

系统 2019-09-27 17:54:36 2642

Python

简单介绍Python中的len()函数的使用

函数:len()1:作用:返回字符串、列表、字典、元组等长度2:语法:len(str)3:参数:str:要计算的字符串、列表、字典、元组等4:返回值:字符串、列表、字典、元组等元素的长度5:实例5.1、计算字符串的长度:>>>s="hellogoodboydoiido">>>len(s)215.2、计算列表的元素个数:>>>l=['h','e','l','l','o']>>>len(l)55.3、计算字典的总长度(即键值对总数):>>>d={'num':1

系统 2019-09-27 17:50:50 2642

Python

python爬虫---从零开始(三)Requests库

1,什么是Requests库Requests是用python语言编写,基于urllib,采用Apache2Licensed开源协议的HTTP库。它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求,用一句话来说,Requests是python实现的简单易用的HTTP库。安装Request,直接输入pip3installrequests2,使用方法(底部有码云地址)相对上一期的urllib库要简单了很多了(个人觉得简单了不少的)各种请求

系统 2019-09-27 17:49:48 2642

Python

python在linux中输出带颜色的文字的方法

在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息。我们可以通过对有用的信息设置不同颜色来达到醒目的效果,因为我平时都是在linux下开发,而linux终端中的颜色是用转义序列控制的,转义序列是以ESC开头,可以用\033完成相同的工作(ESC的ASCII码用十进制表示就是27,等于用八进制表示的33)。书

系统 2019-09-27 17:48:16 2642