摘要:
本例效果图:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;Memo1: TMemo;Memo2: TMemo;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: 阅读全文
posted @ 2010-06-17 16:43
delphi中间件
阅读(275)
评论(0)
推荐(0)
摘要:
本例在建立一个新的堆前后分别通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表, 没想到一个最简单的程序也有 5 个堆. 效果图:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Memo1: TMemo;Memo2: TMemo;Button1: TButton;procedure FormCreate(Sender: TObject);proc 阅读全文
posted @ 2010-06-17 16:41
delphi中间件
阅读(184)
评论(0)
推荐(0)
摘要:
系统给程序的地址数是 4G, 为什么不是 3G 或 5G? 因为 32 位的指针的最大值就是 $FFFFFFFF, 它不能表示更多了, 究其根源这要回到 CPU 的寻址能力、地址总线等等.在 Win64 下, 系统给程序的地址数达到了 16EB(0 - $FFFFFFFFFFFFFFFF), 也就是 18446744073709551616 个. 不过 Win64 还没有普及, 我们还得回到实际的 Win32.就这 4G 的地址, 系统还要留下一半($80000000 - $FFFFFFFF, 这 2G 是各进程共享的)用作宏观管理; 只给程序 2G(0 - $7FFFFFFF).就这 2G 阅读全文
posted @ 2010-06-17 16:36
delphi中间件
阅读(181)
评论(0)
推荐(0)
摘要:
VirtualAlloc 分配的内存是以 4K 为最小单位、连续的内存地址(但映射到真实的内存时它不一定是连续的), 前面说了, 它不适合分配小内存(譬如只有几个字节的变量); 局部的变量在 "栈" 中有程序自动管理, 那么那些全局的小变量怎么办呢? 这就要用到 "堆".9 q% /+ Q1 L, }1 F2 x$ D5 D! A+ n! q4 O% aQ5 x0 r3 Y这样看来, VirtualAlloc 分配的内存既不是 "栈" 也不是 "堆"; VirtualAlloc 分配的内存地址是连续的, " 阅读全文
posted @ 2010-06-17 16:34
delphi中间件
阅读(238)
评论(0)
推荐(0)
摘要:
一个使用私有堆的例子:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}var MyHeap: THandle; {堆句柄} p: Pointer.. 阅读全文
posted @ 2010-06-17 16:31
delphi中间件
阅读(177)
评论(0)
推荐(0)
摘要:
Windows 是多任务的操作系统, 一个任务就是一个应用(应用程序)、一个应用占一个进程; 在一个进程里面, 又可以运行多个线程(所以就有了很多"多线程编程"的话题). 对 Win32 来讲, 系统给每个进程 4GB 的地址空间:低端 2GB($00000000 - $7FFFFFFF) 给用户支配;高端 2GB($80000000 - $FFFFFFFF) 留给系统使用. 文件或程序要调入内存才能工作, 先看看我们的内存到底有多大吧.在系统盘根目录下有个 pagefile.sys 文件, 这就是我们的 "虚拟内存"(虚拟内存是以文件的形式存在的). 阅读全文
posted @ 2010-06-17 16:30
delphi中间件
阅读(240)
评论(0)
推荐(0)

浙公网安备 33010602011771号