这个环形缓冲区是基于http://circularbuffer.codeplex.com/ 、 http://en.wikipedia.org/wiki/Circular_buffer 修改的 最近自己项目用到的一个缓冲区,理论上支持多线程在自己的多线程项目测试过,暂时没有问题下面科普下环形缓冲区在内存里的变化: 环形缓冲区首先从空开始并具有设置的长度;在下图中,是一个7字节的缓冲区: 假设在环形缓冲区的中心写入1(确切的起始位置在环形缓冲区中并不重要): 然后,假设将另外两个字节(23)添加到环形缓冲区,它们将放在1之后: 如果删除了两个字节,则环形缓冲区内部的两个最早加入的值将被删除。 环形缓冲区使用FIFO(先进先出)逻辑。 在示例1和2中,第一个进入“环形缓冲区”则第一个被移除,而将3留在缓冲区中。 如果缓冲区有7个字节,则它已经完全占满: 环形缓冲区的一个特性是,当缓冲区已满并执行后续写入操作时,它将开始覆盖最早的数据。 在当前示例中,添加了两个元素A和B并覆盖 了3和4: 最后,如果现在删除了两个字节,则返回的不是3&4而是5&6,因为A&B覆盖了3&4,产生了带有以下内容的缓冲区: 环形缓冲区使用说明: 环形缓冲区的特性是,在使用环形缓冲区时,不会导致内部数据乱七八糟。 (如果使用了非环形缓冲区,那么在没取一个字节时,就必须对所有字节进行移位。)换句话说,环形缓冲区非常适合作为FIFO(先进先出)缓冲区,而标准缓冲区则适合用作FIFO(先进先出)缓冲区。非环形缓冲区非常适合用作LIFO(后进先出)缓冲区。 对于具有固定最大大小的队列,使用环形缓冲是一种很好的实现策略。如果队列采用最大大小,则环形缓冲区是完全理想的实现;所有队列操作都是固定时间。但是,扩展循环缓冲区需要转移存储器,这是非常耗时和消耗资源的。对于任意扩展的队列,可以首选使用链表方法。 这个是24个字节的环形缓冲区 当写指针即将到达读指针时(由于微处理器没有响应),缓冲区停止记录击键。 在某些计算机上会发出哔声。这个排版真累人- .- 2021/5/16  源码更新: [+] 为了大家方便理解新增了Demo 2021/5/15  源码更新: [!] 修复致命BUG,受影响函数:CircularBufferGetBytes、CircularBufferGetBytesFoIndex、CircularBufferPutToMem、CircularBufferPutBytes 下面为更新后代码:
2021-11-05 10:16:05 388KB 高级教程源码
1
注入代码 调用函数 用法如下 --------------------------------------------------------------------------------- 地址不需要填写 只需要参数跟call 注意只支持字节集 ' 01003503|.8908 mov dword ptr ds:[eax],ecx 通关时间 ' 01003505|.E8 77E6FFFF call winmine.01001B81 第一个对话框 ' 0100350A|.E8 9BE6FFFF call 01001BAA 第二个对话框 HOOK 用法如下 --------------------------------------------------------------------------------- HOOK简单教材 1 找出需要HOOK掉的代码块 如下图所圈子程序有俩个参数 接着一个call 弹出信息框 给它HOOK掉 2 填写开始地址与返回地址 地址都是十六位的 HOOK填写代码只支持字节集 返回代码程序自己写好 支持call跟jmp 3 没有三了.. hook失败的话试试管理模式 4 有一个 字节集转汇编代码 功能 实在找不到源码参考 所以调用的DLL
2021-10-24 10:30:04 721KB 高级教程源码
1
webkitChrome内核浏览器易语言源码
2021-10-20 21:09:56 6.35MB 高级教程源码
1
随机植物and固定植物: 上面植物被欺负惨了,现在该僵尸被欺负惨了 一键选择种植类型卡片: 重点的一个 一个call调用所有模式 秒通关,我所利用的其实是一个小游戏里面的CALL。 不管什么模式,一秒钟通关。这个一点都不夸张。 其实呢,这个很简单很多人觉得这个植物大战僵尸的非常多。用于很多的教学视频啊之类的。 那有多少人教你了关于怎么去分析汇编? 怎么去找CALL? 怎么知道CALL返回了多少个参数?CALL的来源? 那我们举个简单的例子?CALL 52052020这个我们要怎么正确编程传达CALL呢? 我觉得过时了也好,怎么的也好。只要你认真的分析一个程序得到了你需要的结果以后。那么你就是快乐的。你或许会有一个小时 或者 几个小时去分析一个CALL去编写测试一个CALL当你成功以后。那种感觉是什么样子的?我不是大神,也没资格对人品头论足。 我们可以想一下刚才是我们学编程那股劲。
2021-10-17 17:15:06 77KB 高级教程源码
1
《Hello WebKit》, 是完全面向对象的框架,所有的对浏览器的操作都在类中进行,所有的回调事件也在类中响应,总之一切皆为 , 在这里请将《Hello WebKit》框架视作 易语言 版的Cef框架,因为本身也是如此。 .................................................................................................. 介绍和使用说明太多了,直接点击 标题右下方 的" 来源链接 "进行查看吧 介绍和使用说明太多了,直接点击 标题右下方 的" 来源链接 "进行查看吧 介绍和使用说明太多了,直接点击 标题右下方 的" 来源链接 "进行查看吧
2021-10-10 14:13:15 86KB 高级教程源码
1
易语言线程上下文注入源码
2021-10-09 11:07:13 383KB 高级教程源码
1
VEH异常处理+硬件断点 捕获内存的读写xx 参考自CE的查找访问该地址的代码的功能
2021-09-21 19:18:20 119KB 高级教程源码
1
通过文件 MD5 扫描重复的文件 文件夹里面有很多很多文件,但一些是重复的-----  图片 MP3  文本文档,怎么办 这个时候就需要去除重复
2021-09-20 18:34:28 7KB 高级教程源码
1
易语言调用Python源码例程
2021-09-14 12:42:14 19KB 高级教程源码
1
貌似有些朋友 目前还不了解TCP_client 如何使用代理IP,这边就丢个简单的例子,备注也比较详细,供学习。 网络客户、客户组件 使用TCP代理IP方法。(HTTP/S5) 如果要支持HTTPS数据传输(443端口),可以使用HPSocket或者其他方法 ssl_client进行连接。原理都一样。 源码中 精易模块 的编码转换,论坛下载。
2021-08-31 11:39:48 257KB 高级教程源码
1