随笔分类 -  Delphi-Memory2

摘要:技术交流,DH讲解. 本来之前就在写这个文章,还写了War3挂的教程,后来因为一些事就没有弄了.现在过年在家又没有事就继续把这个写完吧.哈哈.不要以为写个挂很容易,要想写个挂肯定要了解游戏呀.我们现在来了解下地雷是怎么产生的?其实只是我自己猜想的,毕竟这个游戏不是我写的...1 用户选择了多大的棋盘 阅读全文
posted @ 2016-02-08 21:18 findumars 阅读(519) 评论(0) 推荐(0) 编辑
摘要:C++能在堆栈、堆、资料区创造对象。 但是Delphi只能在堆上创造对象 阅读全文
posted @ 2016-02-05 06:32 findumars 阅读(222) 评论(0) 推荐(0) 编辑
摘要:在实际编程中,经常会用到Buffer,当string作为Buffer传值时需要注意的是1, string的值的起始索引是1,千万记住!2, 有时候需要先告诉系统去开辟出内存空间,用SetLength函数。如下代码,示范了再Move、 WriteBuffer、 ReadBuffer时候的用法:[del... 阅读全文
posted @ 2015-12-30 01:05 findumars 阅读(355) 评论(0) 推荐(0) 编辑
摘要:传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数。专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分配并释放所需的内存。Delphi 4中增加了非常简单的动态数组实现方法,实现过程效仿我前面讲过的动态长字符串。与长字符串一样,动态... 阅读全文
posted @ 2015-12-30 00:37 findumars 阅读(3612) 评论(0) 推荐(0) 编辑
摘要:以delphi为例:TTest = recordc1: char;i1: Integer;c2: char;c3: Char;end;这个结构如果用sizeof取其占用的内存大小,是多少呢,是1+4+1+1=7么,不是,是4*3 = 12; 这是因为32位编译的时候,默认结构会自动内存对齐(32bi... 阅读全文
posted @ 2015-12-29 23:49 findumars 阅读(750) 评论(0) 推荐(0) 编辑
摘要:Delphi内存操作API函数System.IsMemoryManagerSet;System.Move;System.New;System.ReallocMem;System.ReallocMemory;System.SetMemoryManager;System.SysAllocMem;Syst... 阅读全文
posted @ 2015-12-14 14:12 findumars 阅读(876) 评论(0) 推荐(0) 编辑
摘要:今天在SourceForge下到了FastMM(Fast Memory Manager),听说比官方的内存管理快多了,试了一下,果然不错。目前最新的是4.27。就我的使用范围来说,我就是想看看我的程序有没有内存泄漏。首先在下载的文件里你会找到一个文件,位置在Replacement BorlndMM ... 阅读全文
posted @ 2015-12-01 17:57 findumars 阅读(393) 评论(0) 推荐(0) 编辑
摘要:(一).缘起1.1 我的一个出错程序程序名称:呼叫处理模块的压力测试工具,分为客户端和服务端。开发工具:Delhpi 5相关技术:客户端通过与服务端建立Socket连接来模拟一组电话机的拨入、按键、等待、挂机等过程。服务端对Socket事件以及收到的数据包进行预处理,并转化为抽象的呼叫模型数据,然后... 阅读全文
posted @ 2015-12-01 17:25 findumars 阅读(591) 评论(0) 推荐(0) 编辑
摘要:有些时候,我们写的程序需要播放音乐,一般大家会采用以下几种方式:1.把音乐文件放置在某个特定的目录,例如Sound,WAV,Music供程序读取播放;2.使用资源来存放音乐。有些人估计也是使用这个方法的,不过大部分人可能是先从资源里把音乐文件释放出来,然后再去读取播放。我今天要介绍的方式是直接把音乐... 阅读全文
posted @ 2015-11-26 21:15 findumars 阅读(2382) 评论(0) 推荐(0) 编辑
摘要:支持面向对象编程Delphi是如此丰富和强大。雷和对象允许模块化编程。除了更多的模块和更多复杂的组件外,同时也带了更多的迷惑和更多复杂的Bugs。当用Delphi开发一个程序(几乎)总是那么的有趣,当你感觉整个世界都在反对你的这个局面下。无论什么时候你需要创建一个对象你就得释放它所使用的内存。无疑此... 阅读全文
posted @ 2015-11-26 21:10 findumars 阅读(1251) 评论(0) 推荐(0) 编辑
摘要:前几日,调试一BUG,过程先不说,最后调试到MM,即Debug dcu,然后进入到GetMem.inc中的Get/FreeMem函数处后,出现AV。 然后一通找。。。郁闷了N天,后来发现将MM切换到QMM后,一切正常,然后再切回原MM,BUG出现。。。 按经验,此类问题一般由于线程未有锁保护引起,但... 阅读全文
posted @ 2015-10-18 17:58 findumars 阅读(877) 评论(0) 推荐(0) 编辑
摘要:我估摸着内存分配+释放是个基础函数,有些人可能没注意此类函数或细究,但我觉得还是弄明白的好。介绍下面内存函数前,先说一下MM的一些过程,如不关心可忽略: 1 TMemoryManager = record 2 GetMem: function(Size: Integer): Pointer; 3... 阅读全文
posted @ 2015-10-18 17:55 findumars 阅读(1074) 评论(0) 推荐(0) 编辑
摘要:在开始进入正题前先罗嗦几句: 1、本人也刚学Delphi不久,也刚通过《诛仙》游戏的绝大部分CALL不久。所以在以下所说所列举的例子并不算是名门正中的写法,如有不当,请各位原谅。 2、本人所学基本都是在“漆黑一片”中自己摸索出来的。也正因如此,因而深感各位新手想入门但又无处可问的无奈心情。所以将在下 阅读全文
posted @ 2015-07-30 18:53 findumars 阅读(796) 评论(0) 推荐(0) 编辑
摘要:动态生成控件,应该是这么写(当场创建): 却一不小心写成了(少了一个Create): 结果报错:A control cannot have itself as its parent 有空研究一下,这个报错信息在哪里。另外我就是很感兴趣,在编译器层面是如何做到“强行转换”的?仅仅切换内存的大小?留个爪 阅读全文
posted @ 2015-07-26 00:00 findumars 阅读(236) 评论(0) 推荐(0) 编辑
摘要:1. 根据 Delphi 指令参考手册中 说明: Assigned 函式在参数不为 nil 时传回 True, 表示指针已经指到某个内存地址,这个内存地址可能是一个对象地首地址,也可能在函数或过程中,声明一个指针变量,没有赋值为 nil ,无乱的指向某处,这两个种情况, Assigned (指针变量 阅读全文
posted @ 2015-02-06 22:34 findumars 阅读(500) 评论(0) 推荐(0) 编辑