随笔分类 -  Delphi基础

摘要:我们知道在C和C++里面声明一个指针,但是可以像数组一样去访问里面的成员. 在Delphi2009之后我们有了{$POINTERMATH ON}编译开关,我们也可以了. 一般在Delphi2009之前的版本中,我们会用如下几个方法: 1 1: var 2: P: PByteArray; 3: begin 4: ... 阅读全文
posted @ 2011-09-07 10:29 HuangJacky 阅读(888) 评论(0) 推荐(0) 编辑
摘要:大家好,我是HuangJacky,技术交流. 在上一文中我说到了一个问题,后来也发现出现问题的地方在那里,但最后由于太晚了,就没有仔细说明其中的原因.好的现在我们接着说原因. 有时间的朋友可以先看看我的另外一篇文章Delphi - 对象构造浅析后续. 首先我们来对象A的内存空间: 我们以4个字节为一个单位来看看 ,每个都是什么意思. 首先看$004BD47C地址: 从旁边的字符,我们可以看到这个是... 阅读全文
posted @ 2011-06-17 23:12 HuangJacky 阅读(759) 评论(0) 推荐(0) 编辑
摘要:大家好,我是HuangJacky,技术交流. 这个是在工作发现的一个问题,而且是很久的问题了.当时已经写成文章了.但是(往往时常都有这个但是)系统挂了,文章还没有发出来. 好,赶紧发出来. 首先还原下问题:(这个 插件居然没有Pascal) 1: //首先定义具有继承关系的接口 2: IBase = interface 3: procedure TalkBase; 4: end; 5: 6: ID... 阅读全文
posted @ 2011-06-17 00:41 HuangJacky 阅读(496) 评论(0) 推荐(0) 编辑
摘要:由于最近公司太忙,好久没有更新我的BLOG了。原来想着写写关于HOOK驱动的文章,可是最后想想好久已经没有做驱动的东西了,怕写出来有错误,于是作罢。开发游戏也有一段时间了,发现使用DELPHI来开发网络游戏不了解DELPHI下指针的使用是完全不行的。所以今天我简单总结以下我使用DELPHI指针的心得。希望对大家有所帮助。 记得在大学学习C语言的时候在谭浩强编写的书中,关于指针一章的开始就说"指针是... 阅读全文
posted @ 2010-10-08 13:32 HuangJacky 阅读(1753) 评论(2) 推荐(0) 编辑
摘要:--------------- 什么是 Hash Hash 的重要特性 Hash 函数的实现 主要的 Hash 算法 Hash 算法的安全问题 Hash 算法的应用 结 论 --------------- Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转... 阅读全文
posted @ 2010-10-08 13:23 HuangJacky 阅读(3386) 评论(0) 推荐(0) 编辑
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; proc... 阅读全文
posted @ 2010-10-08 13:20 HuangJacky 阅读(1607) 评论(0) 推荐(0) 编辑
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; proc... 阅读全文
posted @ 2010-10-08 13:17 HuangJacky 阅读(859) 评论(0) 推荐(0) 编辑
摘要:Hash表,其实就是一个Key对应一个Object 在Delphi里最简单实现Hash的就是TStrings 通过它的AddObject,IndexOf,Objects等方法可以做一个很简单的Hash表。 TStrings没有排序,所以IndexOf比较慢,而它的子类TStringList具有Stored属性,设置为True之后,IndexOf是用折半查找的,效率很高。 所以在Delphi... 阅读全文
posted @ 2010-10-08 13:13 HuangJacky 阅读(2453) 评论(0) 推荐(1) 编辑
摘要:版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fxh7622.blog.51cto.com/63841/16633 在游戏开发中经常需要保存一些数据结构,并且在使用的时候需要快速的查找出来.Hash表正是为了提高检索速度而设计出来的.下面我就将我在用Delphi开发中使用Hash表的方法写出来,希望对大家有... 阅读全文
posted @ 2010-10-08 13:08 HuangJacky 阅读(1648) 评论(0) 推荐(0) 编辑
摘要:记得以前在将C++的头文件时候在结构体中有个成员是位域定义,说白了就是将一个字节中的每一位代表什么意思,比如第3位如果为1的话代表代表数据有效,反之为0就是数据无效.当时没有办法就直接定义一个字节吧,在使用的时候先读出这个字节然后用与运算来判断吧. 最近困在襄樊和河南的一个交界处,偏僻呀,不过也好,没事干的时候可以看看代码吧.其实在很早之前看JEDI中翻译的Pas文件时候就看到过用Set来表示位域... 阅读全文
posted @ 2010-07-27 23:18 HuangJacky 阅读(1310) 评论(2) 推荐(1) 编辑
摘要:IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。 下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。 版本:占4位(bit),指IP协议的版本号。目前的主要版本为IPV4,即第4版本号,也有一些教育网和科研机构在使用IPV6。在进... 阅读全文
posted @ 2010-04-02 15:06 HuangJacky 阅读(2644) 评论(0) 推荐(0) 编辑
摘要:技术交流,DH. 我们一般在调用了一些API后都会用GetLastError来获得错误信息,但是信息都是Integer的,我们知道是什么意思么?嘿嘿,是的,有msdn呀,当然还可以用FormatMessage函数来.正好看了下Windows核心编程第一章有个例子,来用Delphi试一下.主要用了FormatMessage函数,具体用法和注意事项就很多了,大家可以看MSDN了.我为了要dx的皮肤,所... 阅读全文
posted @ 2010-03-20 00:33 HuangJacky 阅读(1806) 评论(2) 推荐(1) 编辑
摘要:转着用的,后来发现貌似网上有个一流传的版本,不管了既然自己工作了,肯定用自己的,欢迎大家用我翻译的这个,不知道有问题没有...?!!! 下载地址 既然来了就帮我试一下了. 阅读全文
posted @ 2010-03-11 15:41 HuangJacky 阅读(1597) 评论(0) 推荐(0) 编辑
摘要:技术交流,DH讲解.之前转了一篇文章介绍了一些,但是发现有很多它上面都没有,那么自己来翻译一下Delphi的文档吧. 首先定义:多吧.看看帮助里面这么解释的: 值意义csAcceptsControls在设计的时候,如果有控件拖到它上面来,那么它就是被拖控件的Parent了csCaptureMouse当被点击的时候,这个控件能捕获鼠标事件csDesignInteractive 控件在设计时将鼠标右键... 阅读全文
posted @ 2010-03-03 11:44 HuangJacky 阅读(1667) 评论(1) 推荐(0) 编辑
摘要:技术交流,DH讲解. 记得很早之前我就说过,数组和结构体在内存中其实一样的,他们都是连续分布的.例如: TMyStruct = record A,B,C:Integer; end; T3IntArray = array[0..2]of Integer;这两个都占12字节,而且TMyStruct.A就是T3IntArray[0].而我们知道在访问数组中某个元素的时候,只是在第一个元素的地址 + 序号... 阅读全文
posted @ 2010-02-10 14:17 HuangJacky 阅读(5892) 评论(0) 推荐(0) 编辑
摘要:技术交流,DH讲解. 之前照着天书夜读,用Delphi来弄了下循环体,现在就来弄一下条件判断吧.首先肯定是我们经常看见的IF语句咯.Var I: Integer;Begin I:= 99; If (I> 0)And (I< 0) Then Writeln('I>0') Else If (I> 10)And (I< 100) Then Writeln('I&g... 阅读全文
posted @ 2010-02-04 17:36 HuangJacky 阅读(5803) 评论(0) 推荐(0) 编辑
摘要:技术交流,DH讲解. 哈哈,我承认我是标题党.最近看天书夜读里面是对C语言的代码反汇编,不错,可惜Delphi没有这样的书,那我们自己动手吧.首先进入For循环了.Function TestFor( a, b: Integer ): Integer ;Var I: Integer ;Begin Result := a + b ; For I := 0 To 49 Do Result := R... 阅读全文
posted @ 2010-02-04 12:14 HuangJacky 阅读(1718) 评论(0) 推荐(0) 编辑
摘要:技术交流,DH讲解.最近用这个,虽然网上貌似有,我还是自己翻译一个,累哟.哈哈.希望朋友帮忙测试,如果使用中发现什么问题,联系我.点击这里下载.好的来个例子,列举出当前系统总的进程数:ImplementationUses utPerf ;{$R *.dfm}Function GetProcessCount( ): Int64 ;Var h: PDH_HQUERY ; c: PDH_HCoun... 阅读全文
posted @ 2010-01-26 12:39 HuangJacky 阅读(953) 评论(2) 推荐(0) 编辑
摘要:技术交流,DH讲解. 本随笔,就自己一心得+笔记,而自己水平有限,所以本文也可能是水文.哈哈讲解前先来个表格:有条件的朋友可以看加密解密(第三版)一书,哈哈,我书还是买了一些的. 方式 传值方向 传值位置 谁来平衡堆栈 备注 _cdecl 从右到左 直接压栈 调用者 默认C++的 _stdcall 从右到左 直接压栈 函数本身 Win32 API register 从左到右 adc寄存器然后... 阅读全文
posted @ 2010-01-25 12:12 HuangJacky 阅读(1039) 评论(0) 推荐(1) 编辑
摘要:技术交流,DH讲解. 在D2010的classes中有个TBits类,这个类主要是位操作的. TBits = class private FSize: Integer; FBits: Pointer; procedure Error; procedure SetSize(Value: Integer); procedure SetBit(Index: Integer; Value: Boole... 阅读全文
posted @ 2010-01-19 11:21 HuangJacky 阅读(1303) 评论(1) 推荐(1) 编辑

AdminLogin