Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #1814
| From | "aminer" <aminer@videotron.ca> |
|---|---|
| Newsgroups | comp.programming |
| Subject | AWE was updated to version 1.2 .... |
| Date | 2012-06-18 18:45 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <jrob16$1f5$1@dont-email.me> (permalink) |
Hello,
AWE version 1.2 is here, what have changed in version 1.2 ?
now there is no getmem() and freemem() in AWEStream, you have just
to pass the size of the stream to be allocated to the constructor, like
this:
awe1:=TAWEStream.create(getavailmem*1000);
and you can test after that if your memory was allocated like this:
if awe1.allocated
then writeln('Memory was allocated...')
else writeln('Memory was not allocated...');
I have also added another class called AWEMem , how to use
AWEMem ? when you want to do a getmem() just call the
constructor by passing the size of the memory to be allocated like this:
awemem:=TAWEMem.create(getavailmem*1000);
and when you want to do a freemem() just call the destructor
like this:
awemem.free
Description:
Why the 2 GB limitation on the Win 32bits systems ?
My AWE object pascal module is here, it allows your application to use up to
64GB of RAM.
And here is the public interfaces of TAWEMem and TAWEStream classes, i have
implemented the following methods:
TAWEStream = class(TStream)
public
Memory:pointer;
allocated:boolean;
Size:longword;
position:longword;
PageSize:integer;
constructor Create();
destructor Destroy(); override;
function GetMem(ulBytes: ulong): bool;
function FreeMem(): bool;
function HowManyPagesAllocated(): ulong;
function CopyFrom(in_stream:TStream;count:longint):longint;
function CopyTo(out_stream:TStream;count:longint):longint;
function Read(var Buffer;count:longint):longint;
function Write(const Buffer;count:longint):longint;
procedure LoadFromStream(in_stream: TStream);
procedure LoadFromFile(const FileName: string);
function ToString:string;
published
property TotalMem:int64 read gettotalmem;
property AvailMem:int64 read getavailmem;
property MemLoad:int64 read getmemload;
end;
TAWEMem = class
public
memory:pointer;
allocated:boolean;
Size:longword;
PageSize:integer;
constructor Create(ulBytes: ULONG);
destructor Destroy(); override;
function HowManyPagesAllocated(): ULONG;
end;
Note: To be able to use AWE you have to set the user rights correctly, so,
go to:
Control Panel -> Administrative tools -> Local Security Policy -> User
Rights Assignment
and give 'Lock pages in memory' right to the user that wants to use AWE and
reboot the system..
Every TAWEStream and TAWEMem objects can go up to 4GB , and you can go up to
64GB of memory !
You can download AWE from:
http://pages.videotron.com/aminer/
And please look at the test examples 'test.pas' and 'test1.pas' inside the
zipfile - compile and execute them... -
Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/
Operating Systems: Windows 2000 and up (x86).
Required FPC switches: -O3 -Sd -dFPC -dWin32 -dFreePascal
-Sd for delphi mode....
Required Delphi switches: -DMSWINDOWS -$H+
For Delphi 5,6,7 use -DDelphi
For Delphi 2005,2006,2007,2009,2010+ use the switch -DDELPHI2005+
Thank you,
Amine Moulay Ramdane.
Back to comp.programming | Previous | Next — Next in thread | Find similar
AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 18:45 -0500 Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 18:54 -0500 Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 19:51 -0500 Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 19:57 -0500 Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 22:18 -0500
csiph-web