Forum: Sonstige Fragen zu Delphi
C++
by Zacherl,
15. Mär 2018
Oder - wie bereits in Post #9 vorgeschlagen - einfach den umgekehrten Weg gehen und das Bitmap fragmentieren / in mehrere Teil-Bitmaps splitten.
Naja, ich klinke mich an dieser Stelle auch mal aus, der TE scheint ja sowieso seinen eigenen Weg gehen zu wollen :stupid:
Forum: Sonstige Fragen zu Delphi
C++
by Zacherl,
14. Mär 2018
AWE löst das Problem leider ebenfalls nicht :P Damit kannst du zwar große Mengen physikalischen Speicher verwalten, aber dieser muss trotzdem in den virtuellen Adressbereich gemappt werden. Ist in Letzterem halt kein zusammenhängender Block in der entsprechenden Größe mehr frei, scheitert auch das.
Forum: Sonstige Fragen zu Delphi
C++
by Zacherl,
14. Mär 2018
Wenn trockene Werte es nicht schaffen dich zu überzeugen, hilft es vielleicht eine grafische Darstellung? Mit VMMap kannst du dir den virtuellen Speicher deines Prozesses anzeigen lassen und auch z.b. explizit nach freien Speicherblöcken filtern:
Hier sieht man unter anderem schön, dass die meisten Blöcke (alle bis auf einen) zu klein wären, um dein 300MiB Bitmap an einem Stück zu beinhalten:
Forum: Sonstige Fragen zu Delphi
C++
by Zacherl,
12. Mär 2018
Eine zuverlässige Lösungsmöglichkeit, die nicht auf irgendwelchen esoterischen Windows Speicherverwaltungs-Optionen oder Compiler-Switches basiert, habe ich weiter oben bereits genannt.
Forum: Sonstige Fragen zu Delphi
C++
by Zacherl,
12. Mär 2018
Das ist der Knackpunkt!
Eventuell könntest du dein Bitmap in 4 (oder noch mehr) Quadranten einteilen und bei der Anzeige wieder zusammensetzen? Dann würde es reichen mehrere nicht-zusammenhängende kleinere Speicherblöcke zu reservieren. Und 24- bzw. sogar 32-Bit pro Pixel sind tatsächlich Standard unter Windows, also kommst du auf knapp 300MiB bei deiner Bildgröße.