<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Speicher überfüllt - Programm stürzt ab]]></title><description><![CDATA[<p>Mein Code:</p>
<pre><code class="language-cpp">HDC hDC2 = BeginPaint(hwnd, &amp;ps);
HDC hDC = CreateCompatibleDC(hDC2);
HBITMAP hBM = CreateCompatibleBitmap(hDC2,200,200);
SelectObject(hDC,hBM);
FillRect(hDC,&amp;hwndRect,(HBRUSH)GetStockObject(BGCOLOR))

//Hier sind die verschiedenen TextOuts und so...

EndPaint(hwnd,&amp;ps);
temp = BitBlt(hDC2,0,0,200,200,hDC,0,0,SRCCOPY);
DeleteObject(hBM);
DeleteDC(hDC);
DeleteDC(hDC2);
</code></pre>
<p>Nach ner gewissen Zeit stürzt mein Spiel immer ab. Ich glaube, weil der Speicher überfüllt ist. Wenn ich die Methode wieder auf Single Buffering umstelle habe ich das Problem nicht.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/82716/speicher-überfüllt-programm-stürzt-ab</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 16:07:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/82716.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Aug 2004 11:39:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 11:39:01 GMT]]></title><description><![CDATA[<p>Mein Code:</p>
<pre><code class="language-cpp">HDC hDC2 = BeginPaint(hwnd, &amp;ps);
HDC hDC = CreateCompatibleDC(hDC2);
HBITMAP hBM = CreateCompatibleBitmap(hDC2,200,200);
SelectObject(hDC,hBM);
FillRect(hDC,&amp;hwndRect,(HBRUSH)GetStockObject(BGCOLOR))

//Hier sind die verschiedenen TextOuts und so...

EndPaint(hwnd,&amp;ps);
temp = BitBlt(hDC2,0,0,200,200,hDC,0,0,SRCCOPY);
DeleteObject(hBM);
DeleteDC(hDC);
DeleteDC(hDC2);
</code></pre>
<p>Nach ner gewissen Zeit stürzt mein Spiel immer ab. Ich glaube, weil der Speicher überfüllt ist. Wenn ich die Methode wieder auf Single Buffering umstelle habe ich das Problem nicht.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/581905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581905</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 11:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 11:44:23 GMT]]></title><description><![CDATA[<p>hDC2 darfst du nicht mit DeleteDC() löschen. hDC2 wurde mit BeginPaint() erstellt, wird also bei EndPaint() automatisch zerstört.<br />
Außerdem ist hDC2 nach EndPaint bereits ungültig, das heißt du musst das BitBlt vor EndPaint ausführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/581913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581913</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 11:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 11:44:50 GMT]]></title><description><![CDATA[<p>Du kannst die Sachen wohl nicht löschen, wenn du sie nicht vorher mit SelectObject rausselektierst (Rückgabewert beachten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/581915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581915</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Fri, 13 Aug 2004 11:44:50 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 11:47:34 GMT]]></title><description><![CDATA[<p>Ringding schrieb:</p>
<blockquote>
<p>Du kannst die Sachen wohl nicht löschen, wenn du sie nicht vorher mit SelectObject rausselektierst (Rückgabewert beachten).</p>
</blockquote>
<p>IMHO muss man ein selektiertes HBITMAP nicht durch das alte ersetzen, man darf es gleich mit DeleteObject löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/581919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581919</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 11:47:34 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 11:49:27 GMT]]></title><description><![CDATA[<p>cd9000 schrieb:</p>
<blockquote>
<p>hDC2 darfst du nicht mit DeleteDC() löschen. hDC2 wurde mit BeginPaint() erstellt, wird also bei EndPaint() automatisch zerstört.<br />
Außerdem ist hDC2 nach EndPaint bereits ungültig, das heißt du musst das BitBlt vor EndPaint ausführen.</p>
</blockquote>
<p>Wenn ich das mache, also EndPaint nach BitBlt setze, wird das Bild nicht mehr aktualisiert.</p>
<p>Wie geht das mit dem Selectieren? Ich kanns ja mal ausprobieren..</p>
<p>PS: Was heißt IMHO???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/581925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581925</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 11:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 11:59:16 GMT]]></title><description><![CDATA[<p>joomoo schrieb:</p>
<blockquote>
<p>Wenn ich das mache, also EndPaint nach BitBlt setze, wird das Bild nicht mehr aktualisiert.</p>
</blockquote>
<p>Zeig mal bitte den Code, der nicht funktioniert. Tatsache ist, dass EndPaint am Ende und nicht mittendrin stehen sollte, zumindest wenn du hDC2 noch benutzen willst.</p>
<p>joomoo schrieb:</p>
<blockquote>
<p>Wie geht das mit dem Selectieren? Ich kanns ja mal ausprobieren..</p>
</blockquote>
<p>SelectObject? Das benutzt du doch schon?<br />
Ringding meinte, dass du das alte HBITMAP speichern und am Ende wieder reinselektieren sollst.</p>
<p>joomoo schrieb:</p>
<blockquote>
<p>PS: Was heißt IMHO???</p>
</blockquote>
<p><a href="http://www.google.de/search?hl=de&amp;ie=UTF-8&amp;q=IMHO+abk%C3%BCrzung&amp;btnG=Suche&amp;meta=lr%3Dlang_de" rel="nofollow">Google</a>. HTH <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/581932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581932</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 11:59:16 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 12:03:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">HDC hDC2 = BeginPaint(hwnd, &amp;ps);
HDC hDC = CreateCompatibleDC(hDC2);
HBITMAP hBM = CreateCompatibleBitmap(hDC2,200,200);
SelectObject(hDC,hBM);
FillRect(hDC,&amp;hwndRect,(HBRUSH)GetStockObject(BGCOLOR))

//Hier sind die verschiedenen TextOuts und so...

temp = BitBlt(hDC2,0,0,200,200,hDC,0,0,SRCCOPY);
EndPaint(hwnd,&amp;ps);
DeleteObject(hBM);
DeleteDC(hDC);
</code></pre>
<p>Wie kann ich den das alte HBITMAP wieder selektieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/581941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/581941</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 12:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 13:01:57 GMT]]></title><description><![CDATA[<p>Ringding schrieb:</p>
<blockquote>
<p>Du kannst die Sachen wohl nicht löschen, wenn du sie nicht vorher mit SelectObject rausselektierst (Rückgabewert beachten).</p>
</blockquote>
<p>Könntest du mir das in den Code einbauen? Ich hab keine Ahnunge wie das gehen soll.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582018</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 13:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 13:15:14 GMT]]></title><description><![CDATA[<p>joomoo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">DeleteObject(hBM);
DeleteDC(hDC);
</code></pre>
</blockquote>
<p>...möglicherweise haut das auch nicht hin.<br />
DeleteObject() könnte fehlschlagen, weil die bitmap sich noch in hDC befindet.<br />
eventuell beide aufrufe vertauschen - oder...<br />
...der richtige weg wäre:<br />
1. beim SelectObject() sich den rückgabewert merken<br />
2. hdc benutzen<br />
3. fertig: SelectObject() für den hdc mit dem vorher gemerkten wert aufrufen</p>
<p>dann ist das bitmap-handle frei und kann auf jeden fall gelöscht werden.</p>
<p>uhhhmm... da waren andere wieder schneller <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/582033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582033</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 13 Aug 2004 13:15:14 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 14:55:47 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>joomoo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">DeleteObject(hBM);
DeleteDC(hDC);
</code></pre>
</blockquote>
<p>...möglicherweise haut das auch nicht hin.<br />
DeleteObject() könnte fehlschlagen, weil die bitmap sich noch in hDC befindet.<br />
eventuell beide aufrufe vertauschen - oder...<br />
...der richtige weg wäre:<br />
1. beim SelectObject() sich den rückgabewert merken<br />
2. hdc benutzen<br />
3. fertig: SelectObject() für den hdc mit dem vorher gemerkten wert aufrufen</p>
<p>dann ist das bitmap-handle frei und kann auf jeden fall gelöscht werden.</p>
<p>uhhhmm... da waren andere wieder schneller <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Und wie sieht der Code dafür aus? Könntest du mir das in meinen Code reinschreiben oder mir die Befehle sagen?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582127</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 14:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 15:47:58 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>1. beim SelectObject() sich den rückgabewert merken<br />
2. hdc benutzen<br />
3. fertig: SelectObject() für den hdc mit dem vorher gemerkten wert aufrufen</p>
</blockquote>
<p>joomoo schrieb:</p>
<blockquote>
<p>Und wie sieht der Code dafür aus? Könntest du mir das in meinen Code reinschreiben oder mir die Befehle sagen?</p>
</blockquote>
<p>Ich bitte um etwas Eigeninitiative, net hat doch jeden Schritt präzise beschrieben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Ein Anfang wäre es z.B. in die Doku zu SelectObject() zu schauen, damit du weißt, was die Funktion überhaupt macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582172</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 15:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 18:30:47 GMT]]></title><description><![CDATA[<p>cd9000 schrieb:</p>
<blockquote>
<p>net schrieb:</p>
<blockquote>
<p>1. beim SelectObject() sich den rückgabewert merken<br />
2. hdc benutzen<br />
3. fertig: SelectObject() für den hdc mit dem vorher gemerkten wert aufrufen</p>
</blockquote>
<p>joomoo schrieb:</p>
<blockquote>
<p>Und wie sieht der Code dafür aus? Könntest du mir das in meinen Code reinschreiben oder mir die Befehle sagen?</p>
</blockquote>
<p>Ich bitte um etwas Eigeninitiative, net hat doch jeden Schritt präzise beschrieben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Ein Anfang wäre es z.B. in die Doku zu SelectObject() zu schauen, damit du weißt, was die Funktion überhaupt macht.</p>
</blockquote>
<p>Ich habs schon alles probiert doch es klappt alles nicht. Wie soll ich denn den Rückgabewert speichern? Ich habs in nen Zeiger gespeichert, aber das klappt nicht. Wenn ich den Code wüsste, würde ich dann fragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582269</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 18:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 18:35:31 GMT]]></title><description><![CDATA[<p>schau ma in die msdn da steht auch der rückgabetyp der funktion, und wie speichert man den rückgabewert einer funktion? richtig, indem man den rückgabewert in einer variable des selben typs mittels eines &quot;=&quot; operators speichert.eine tolle erkenntnis oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>falls du die msdn nich findest:</p>
<blockquote>
<p>HGDIOBJ SelectObject(<br />
HDC hdc, // handle to DC<br />
HGDIOBJ hgdiobj // handle to object<br />
);</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/582275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582275</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 13 Aug 2004 18:35:31 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 19:19:59 GMT]]></title><description><![CDATA[<p>Mein Script sieht jetzt so aus:</p>
<pre><code class="language-cpp">HDC hDC2 = BeginPaint(hwnd, &amp;ps);
HDC hDC = CreateCompatibleDC(hDC2,200,200);
HBITMAP hBM = CreateCompatibleBitmap(hDC2,200,200);
HGDIOBJ hOldBM = SelectObject(hDC, hBM);
FillRect(hDC,&amp;hwndRect,(HBRUSH)GetStockObject(BGCOLOR));

//TextOuts und sowas...

temp = BitBlt(hDC2,0,0,200,200,hDC,0,0,SRCCOPY);
temp = EndPaint(hwnd, &amp;ps);
SelectObject(hDC,hOldBM);
DeleteDC(hDC);
DeleteObject(hBM);
InvalidRect(hwnd,&amp;hwndRect,FALSE);
</code></pre>
<p>Doch leider aktualisiert sich das Bild nicht. Ich sehe das ´Bild von Menü, nur wenn ich neu zeichne ändert sich nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582302</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 19:19:59 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 19:22:05 GMT]]></title><description><![CDATA[<p>Wird der Code, den du gepostet hast, ausschließlich bei WM_PAINT aufgerufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582304</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 19:22:05 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 19:25:02 GMT]]></title><description><![CDATA[<p>cd9000 schrieb:</p>
<blockquote>
<p>Wird der Code, den du gepostet hast, ausschließlich bei WM_PAINT aufgerufen?</p>
</blockquote>
<p>nein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582307</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 13 Aug 2004 19:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher überfüllt - Programm stürzt ab on Fri, 13 Aug 2004 19:27:18 GMT]]></title><description><![CDATA[<p>joomoo schrieb:</p>
<blockquote>
<p>cd9000 schrieb:</p>
<blockquote>
<p>Wird der Code, den du gepostet hast, ausschließlich bei WM_PAINT aufgerufen?</p>
</blockquote>
<p>nein</p>
</blockquote>
<p>Dann hast du den Fehler gerade gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582311</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 19:27:18 GMT</pubDate></item></channel></rss>