[学习flex] 1.利用flex实现文字和谐小程序 灵感来自于09平台dota1 ,游戏选手对喷时经常互飙国粹,问候对方全家,后来09平台进行了聊天和谐,不和谐的文字都会被*** 替换今天我就就用flex实现类似的效果。话不多说上flex代码:使用flex生成C代码编译C代码:执行模拟程序:可以将生成的replace_word.c 稍加修改嵌入自己的项目中即可实现聊天河蟹。^_^...
《Game Scripting Mastery》一本被中文翻译耽误的书 《Game Scripting Mastery》中文名《游戏脚本高级编程》,各种蹩脚的翻译,更多的像是google翻译的,译者不仅英语能力不行,计算机概念也缺乏,真是糟蹋了好书。
巧用clang 的sanitize检测内存越界 巧用clang sanitize 定位内存泄漏不适用任何特殊编译选项编译这段代码:运行后出现下面的结果:使用gdb 看堆栈:可以看到出错的位置在itree_node_id_clone 中realloc 失败了。但是检查代码,这里的代码并没有问题,使用malloc,calloc 替换后情况类似。于是我们借助clang的sanitizer 来定位问题,使用如下编译选项:后重新编译运行,结果如下:观察结果,发现idps_itree.c:53 这里溢出了,...
动态二进制翻译简述 动态二进制翻译,看名字就知道了必然对应有一个静态二进制翻译。那什么叫二进制翻译呢。二进制翻译主要是一个体系架构的机器码翻译成另一个平台的机器码。通常被用来跑异构平台软件,例如box86 可以在arm 芯片的Linux 上跑 x86 linux 的应用程序。动态二进制主要用在CPU 的模拟,box86,qeme都用到了这些技术。动态二进制翻译与JIT(及时编译) 不同的地方在于:JIT 是将 字节码 翻译成本地机器码,而二进制翻译是机器码到机器码的翻译。JIT 前面有词法解析,语...
1《游戏脚本高级编程》之命令脚本的随想 最近在阅读《游戏脚本高级编程》,这本书的内容涵盖很广,讲述了解释器在游戏领域的一个实现,很适合学习编译原理,虚拟机设计。如果有同学看《龙书,虎书》等看的云里雾里,可以先以此书接下地气,不至于丧失了信心,以及继续学下去的动力。好回到命令脚本。大家有没有想过同样是文本,同样是由主程序读取,然后按文本文件的逻辑执行,命令脚本与配置文件的差别?命令脚本是不涉及到变量,循环,条件逻辑的脚本。我们以一个创建窗口后移动窗口,在闪烁窗口的功能来举例,通常格式内容如下:script_crea...
一次编写摸鱼神器遇到的中文乱码的问题 目的:编写一个类似桌面歌词的摸鱼看小说神器遇到的问题:从磁盘assic 编码(gb2312编码)的中文文件中读取指定数量的文字会出现乱码。VS工程是多字节编码,有的文字能正常显示,有的不行。那就不是字符集转换的问题,这里不存在转换的必要。分析gb2312 一个字是由两个BYTE组成,如果指定读取50个BYTE,其中有一个BYTE 不是汉字而是 字符 那么就会导致解码错位。于是 ,解决办法就是,每次读取N个BYTE, 遍历这N个BYTE,判断是否又奇数个Byte 小于0xA0 (汉字的两个
C语言中使用&& 取标号的一个实验 C语言中&& 的另一种用法:取lable ,标号。 配合goto 一起使用,某些场景下会有意想不到的效果#include <stdio.h>#include <stdlib.h>int main(int argc,char * argv[]){ static const void * gt[3] = {&&_goto1,&&_goto2,&&_goto3}; goto *gt[2];_goto1.
arm 上 Box86对比QEMU 的一点感受 实测BOX64 因为使用了neno在浮点数方面 比QEMU 快非常多。但是在普通整数指令方面,QEMU占优势,比BOX64快6倍左右。以上言论只是个人实测 感受,避免大家入坑。 arm-qemu-usermod box86 md5 999999 0m6.225s 0m6.145s 0m6.126s 0m37.809s 0m38.179s 0m38.095s pi 10000 17m19.986s 17...
巧用static变量初始化结构体! 本技巧属于编程中的 奇技淫巧。 我们封装接口时经常会涉及到类似以下的代码,它的init函数对接口涉及到的结构体进行初始化 ,通常是清0, 大多数情况下我们会用memset操作结构体 ,如下。typedef struct tag_interface{ int a; int b; char sztest[10];} interface_t, * inte...
linux下使用了-L 编译带动态库的可执行程序,可执行程序执行没法找到第三方动态库的问题 适用情形: 第三方动态库(通常是你自己写的)跟可执行程序同一目录,编译链接通过,执行显示无法找到库。解决办法: 使用 -Wl,--rpath=你的库路径 。重新link可执行程序。...
markdown 中插入图片不显示的问题解决办法 适用情形: 使用  使用绝对路径,相对路径 均无法插入图片可以 使用html 的标签<img src="ninjad.png" width = "500" height = "300" alt="图片无法加载时显示的文字" align=center />其他 图片无法显示的情形,本人未遇到。仅供参考!...
vmware 不能自适应客户机的解决办法 本文适用于:安装了vmware tools 后 ”立即适应客户机 ”仍为灰色,不能自适应的情况。环境:物理机 WIN10 vmware64 ubuntu16.04sudo apt-get install open-vm-tools open-vm-tools-desktop open-vm-tools-dkms...
托盘气球提示 不成功的原因(NOTIFYICONDATA) If you set the NIF_INFO flag in the uFlags member, the standard ToolTip is replaced by a balloon ToolTip. For more discussion of balloon ToolTips, see the Using ToolTip Controls chapter.No more than one balloon ToolTip at at time is displayed for the taskb
详解Linux内核之双向循环链表 By邪恶八进制 [转载]详解Linux内核之双向循环链表详解Linux内核之双向循环链表信息来源:邪恶八进制信息安全团队(www.eviloctal.com)摘要: 本文详解了内核中面向对象的list结构的原理,以及如何以list为内嵌对象来构造自己的链表结构,如何从内嵌list对象获得自定义的对象指针;探讨了各种宏或者函数的详细使用方法及怎样以通用list结构来操作自定义对象。关键字: 双向循环链表,list,list_entry,ty