home *** CD-ROM | disk | FTP | other *** search
- { ──────────────────────────────────────────────────────────────── }
- { VERGLEICH FREEMEM / GETMEM UNTER DOS UND WINDOWS }
- { ──────────────────────────────────────────────────────────────── }
- { Demonstriert die "Relativität" der Speicherverwaltung unter Win- }
- { dows im Vergleich zu DOS: Unter Windows bleiben auch bei 100%-ig }
- { sauberer Verwendung von GETMEM / FREEMEM (und auch NEW / DIS- }
- { POSE) immer ein paar Bytes irgendwo hängen (um genau zu sein: in }
- { den Handles, die Turbo-Pascal für den Programmierer transparent }
- { anlegt, da ja "echte" Pointer in Windows absolut tabu sind). }
- { ──────────────────────────────────────────────────────────────── }
- { (c) 1992 by Aurora featuring M.J. Schwaiger }
- { ──────────────────────────────────────────────────────────────── }
- { History: }
- { 1992-04-15 MS Implementierung. }
- { ──────────────────────────────────────────────────────────────── }
-
- {$UNDEF Windows} { Unter Windows: $DEFINE Windows }
-
- PROGRAM Units07;
-
- USES
- {$IFDEF Windows}
- WINCRT;
- {$ELSE}
- CRT;
- {$ENDIF}
-
-
- TYPE
- TFriendRec = RECORD
- Name : STRING [30];
- Age : BYTE;
- END;
-
- VAR
- p : POINTER;
-
-
- BEGIN
- CLRSCR;
- WRITELN;
-
- IF MAXAVAIL < SIZEOF (TFriendRec) THEN
- WRITELN ('Pech gehabt - nicht genug Speicher ! (Das kann nicht Windows sein ?!)')
- ELSE
- BEGIN
- WRITELN (MEMAVAIL, ' ', MAXAVAIL);
-
- GETMEM (p, SIZEOF (TFriendRec));
-
- WRITELN (MEMAVAIL, ' ', MAXAVAIL);
-
- { Hier würden die Bearbeitungsroutinen kommen ... }
-
- FREEMEM (p, SIZEOF (TFriendRec));
-
- WRITELN (MEMAVAIL, ' ', MAXAVAIL);
-
- WRITELN;
- WRITE ('Weiter ...');
- READKEY;
- WRITELN;
- END;
-
- END. { PROGRAM UNITS07 }