AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein GetMem mit Delphi 2010 unter Windows 8
Thema durchsuchen
Ansicht
Themen-Optionen

GetMem mit Delphi 2010 unter Windows 8

Ein Thema von maxbafh · begonnen am 17. Sep 2014 · letzter Beitrag vom 18. Sep 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#1

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 17. Sep 2014, 14:31
Wie gesagt, ein einziges Byte an anderer/neuer Stelle im RAM und schon kann es das gewesen sein.

Mit FastMM kann man sich gern eine Memory-Map von seinem Programm generieren lassen und sieht dann wie/wo der Speicher belegt ist.

Da klappt es in beiden Varianten sowohl als 64bit als auch als 32bit Version.
Warum es mit 64 Bit klappt, hatte ich ja bereits geschrieben.


Nimm dir einen der abschließenden Punkte von Post #2 und schon ist das Problem behoben.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
maxbafh

Registriert seit: 23. Jan 2014
6 Beiträge
 
#2

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 17. Sep 2014, 15:59
Alles zusammen eine nette Idee, kann ich jedoch nicht in der Praxis umsetzen. Nicht weil ich es nicht kann, sondern weil es nicht klappt.

*) MMF - Komprimiertes Bild ist 500MB auf der HDD => unkomprimiert > 1GB brauch es aber unkomprimiert damit ich damit arbeiten kann - MMF kann ich aber nur 1:1 Mappen und nicht komprimiert auf unkomprimiert.

*) Aufteilen - ja ein gesamtes Image kann ich nicht aufteilen auf zwei Speicherbereiche, das braucht einen zusammenhängenden Memory.

*) Mit weniger Aus zu kommen - gut gemeint, schlecht in der Umsetzung.

*) 64bit App - ja für die neue Version, nur nicht für die EOL Version mehr.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 17. Sep 2014, 18:17
Bei einem 32-Bit Programm kann man noch das Linker-Flag IMAGE_FILE_LARGE_ADDRESS_AWARE setzen. Dadurch erhöht sich der Adressraum von 2 GB auf 3GB. Vorraussetzung ist ein 64-Bit Windows oder ein 32-Bit Windows mit dem /3GB Boot-Schalter.

Das Programm und all seine Komponenten und DLLs müssen dann aber auch mit Pointern größer 2 GB richtig umgehen können, was z.B. bei "Integer(P1) - Integer(P2)" nicht der Fall ist (Overflow-Exception).

Folgende Zeile in die DPR Datei einfügen
Delphi-Quellcode:
program MyApp;

{$SetPeFlags $20} // IMAGE_FILE_LARGE_ADDRESS_AWARE

uses
  Forms,
...
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.811 Beiträge
 
Delphi 12 Athens
 
#4

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 18. Sep 2014, 07:36
Stichwort "EOL": Es ist also eine rein akademische Frage gewesen? Entweder das Programm ist am Ende, oder eben nicht. Wenn es tot ist, wurde alles bereits gesagt. Lebt es noch, dann stell halt auf XE5 um, offensichtlich kompiliert es ja bereits - der Rest dürfte dann auch mit vertretbarem Aufwand machbar sein. Für ein totes Programm ist es im übrigen ein leichtes zu sagen "Läuft nur bis Windows 7".

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#5

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 18. Sep 2014, 11:48
*) Aufteilen - ja ein gesamtes Image kann ich nicht aufteilen auf zwei Speicherbereiche, das braucht einen zusammenhängenden Memory.
Eine Paintbox, zwei oder mehr Bitmaps und im OnPaint an der richtigen Stelle zeichnen.
Was glaubst du wie Bildbearbeitungssoftware mit gescannten Bildern umgeht, die teilweise mehrere hundert MB groß sind.

Geändert von Blup (18. Sep 2014 um 11:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 18. Sep 2014, 12:25
Was glaubst du wie Bildbearbeitungssoftware mit gescannten Bildern umgeht, die teilweise mehrere hundert MB groß sind.
Teilweise haben sie den gleichen Fehler. Paint.net kracht(e vor einiger Zeit) genauso.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#7

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 18. Sep 2014, 12:26
Google Maps und Co. haben die Welt auch nicht in einem großen Bild.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.811 Beiträge
 
Delphi 12 Athens
 
#8

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 18. Sep 2014, 13:41
Ausserdem konnten Bildbearbeitungen schon große Bilder bearbeiten als es nur 16 Bit OS gab.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#9

AW: GetMem mit Delphi 2010 unter Windows 8

  Alt 18. Sep 2014, 18:10
Ich muss mich da den anderen anschließen. Lade nur Teile des Bildes, splitte es also ggf. in mehrere Kacheln auf und lade nur die benötigten. Halte das Bild ausserdem in mehreren Auflösungen vor.
Schreibt dir ne Unit zum Handling von großen Bildern (automatisches Zerlegen der Bilder, Skalierung etc.). Ich habe so schon mehrere GigaByte Orthofotos schnell geladen und gecached...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz