AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi C++ Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

Offene Frage von "Zacherl"
Ein Thema von Michaell · begonnen am 12. Mär 2018 · letzter Beitrag vom 15. Mär 2018
Antwort Antwort
Seite 1 von 6  1 23     Letzte » 
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#1

Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 11:28
Hallo,

es gibt hier im Forum viele Anfragen zur Fehlermeldung:
Für diesen Befehl ist nicht genügend Speicher verfügbar.
bzw.:
Not enough storage is available to process this command.
Diese sind alle älter als 5 Jahre und ich konnte auch nichts "passendes" dazu finden:

Kürzlich mußte ich meine benötigte Bitmapgröße auf 8832 * 8832 Pixel erweitern. Beim Programmstart kommt nun bei manchen meiner Rechner (Windows 7, 32 Bit und Windows 10, 32 Bit) die obige Fehlermeldung. Der Trigger für die Fehlermeldung ist hier:
Code:
void __fastcall CBitmapImage::Init()
{
   // generate and init bitmap object
   Bitmap = new Graphics::TBitmap();
   Bitmap->Height = Height; // 8832 pixel
   Bitmap->Width = Width; // 8832 pixel
}
Bei der "Width" Zuweisung passiert es. Wenn ich das richtig berechnete habe, so würde ein 27 MiB Speicherblock benötigt. Klingt für mich nicht nach viel ...
noch ein paar Details:
  1. Mein Prog. belegt nach dem Start 265 MiB RAM.
  2. Alle PCs haben 4 GiB RAM und der ist nicht mal zur Hälfte gefüllt (von den ca. 3 GiB die verfügbar sind).
  3. Ich Verwende den C++ Builder 10.2 mit dem klassischen Compiler.
Wie kann ich dieses Problem beheben? Vielen Dank!

Grüße!

Michael
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.173 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 11:39
Hinweis: Meiner Rechnung nach liegst du eine Zehnerpotenz zu niedrig was den Platzverbrauch angeht.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 11:48
8832 * 8832 * 4 (32 Bit) = 312.016.896. Je nachdem wie das im Speicher liegt noch viel mehr. Irgendwas rechnest du da falsch.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 11:50
Ich hab 2,32GB als benötigte Daten-Menge, ich glaub bei 2,5GB ist mit 32bit Schluß?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#5

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 11:56
Ich hab 2,32GB als benötigte Daten-Menge, ich glaub bei 2,5GB ist mit 32bit Schluß?
Danke, das würde das Ganze erklären. Das meine Rechnung:
8832 * 8832 = 78.004.224 Pixel
Fuer Farbdarstellung benoetigt man 3 bit per Pixel und somit sind es 234.012.672 bit = 29.251.584 byte = 27 MiB
nicht stimmen konnte dachte ich mir schon, es ergab keinen Sinn in Bezug auf den Fehler. Ich weiß darüber einfach zu wenig.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.173 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 12:00
Fuer Farbdarstellung benoetigt man 3 bit per Pixel
Je nachdem was für elaborate Formate du einsetzt kann man das sicherlich schaffen, aber bei einer stinknormalen TBitmap hätte ich jetzt eher auf 4 Byte pro Pixel getippt.
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
220 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 12:16
Der Speicher muss aber auch zusammenhängend frei verfügbar sein wenn er angefordert wird
insofern ist die Windows Anzeige von Freiem Speicher nicht aussagekräftig

mfg Hannes
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 12:17
Also meine Angabe da oben bezieht sich auf ein Standard 32bit (4 byte pro Pixel) Format, keine Eigenkreation.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 12:34
Der Speicher muss aber auch zusammenhängend frei verfügbar sein wenn er angefordert wird
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.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#10

AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.

  Alt 12. Mär 2018, 12:38
Also meine Angabe da oben bezieht sich auf ein Standard 32bit (4 byte pro Pixel) Format, keine Eigenkreation.
OK, dann ergibt sich 8832 * 8832 * 4 byte = 312.016.896. Das Ganze ist dann 32 Bit aligned also 312.016.896 * 4 = 1.248.067.584 Bytes = 1190.25 MiB. Da fehlen mir jetzt aber 50% Deiner 1sten Angabe von 2,32 GB ...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz