<?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[Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist!]]></title><description><![CDATA[<p>Jetzt wird komplex;</p>
<p>Ich empfange Daten über eine ServerSocket (oder ClientSocket). Diese werden dann im OnClientRead (OnServerRead) decodiert (Header (Stringlänge) auslesen). Nachdem es fertig decodiert ist wird eine weitere Funktion aufgerufen die die eigentlichen Strings verarbeitet, die Empfangen() Funktion.</p>
<p>Alles funktioniert einwandfrei ohne irgendwelche Fehler.</p>
<p>In dieser Empfangen Funktion wird im Falle eines Datentransfers ein SaveDialog Window aufgerufen um einen incoming Datatransfer zu speichern. Während dieses Window offen ist kann ein Paket empfangen werden. Die erste Funktion zerlegt das Paket wieder ordnungsgemäß und will die Empfangen Funktion aufrufen. Das geht aber nicht ich bekomme einen Stack Overflow! Warum???</p>
<p>Zwei weitere sonderbare Tatsachen;<br />
Wenn ich die Funktionen im Debugger durchlaufe bekomme ich beim Aufrufen der Empfangen Funktion (Eben wenn ein SaveDialog oder OpenDialog Window offen ist) einen Stackoverflow. Dieser wird aber von der catch Schleife eingefangen. Gut, die Funktion (Datatransfer) wird dann abgebrochen aber das Programm läuft noch. Wenn ich das Programm ohne Debugger durchlaufe verschwindet bzw. stürzt es einfach ab.</p>
<p>Früher hat der Datatransfer einwandfrei funktioniert (kein Stackoverflow) aber jetzt geht er nicht mehr. Ich weis jedoch leider nicht mehr was ich genau geändert habe damit es zu diesem Fehler kommt.</p>
<p>Achja; der Stackoverflow passiert eben jetzt wenn in der aufzurufenden Funktion entweder ein SaveDialog oder OpenDialog Fenster bzw. MsgDlg-&gt;ShowModal() aufrufe und ebendieses Fenster noch offen ist. (Wenn es wieder geschlossen ist funktioniert das Programm wieder ordentlich)</p>
<p>Hoffentlich könnt ihr mir helfen! Ich verstehe einfach nicht warum das Aufrufe eines Fensters dann zu so einem Stackoverflow führt! <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/topic/75774/stackoverflow-beim-aufrufen-einer-funktion-in-der-ein-fenster-offen-ist</link><generator>RSS for Node</generator><lastBuildDate>Sun, 28 Jun 2026 19:55:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75774.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Jun 2004 06:12:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 06:12:12 GMT]]></title><description><![CDATA[<p>Jetzt wird komplex;</p>
<p>Ich empfange Daten über eine ServerSocket (oder ClientSocket). Diese werden dann im OnClientRead (OnServerRead) decodiert (Header (Stringlänge) auslesen). Nachdem es fertig decodiert ist wird eine weitere Funktion aufgerufen die die eigentlichen Strings verarbeitet, die Empfangen() Funktion.</p>
<p>Alles funktioniert einwandfrei ohne irgendwelche Fehler.</p>
<p>In dieser Empfangen Funktion wird im Falle eines Datentransfers ein SaveDialog Window aufgerufen um einen incoming Datatransfer zu speichern. Während dieses Window offen ist kann ein Paket empfangen werden. Die erste Funktion zerlegt das Paket wieder ordnungsgemäß und will die Empfangen Funktion aufrufen. Das geht aber nicht ich bekomme einen Stack Overflow! Warum???</p>
<p>Zwei weitere sonderbare Tatsachen;<br />
Wenn ich die Funktionen im Debugger durchlaufe bekomme ich beim Aufrufen der Empfangen Funktion (Eben wenn ein SaveDialog oder OpenDialog Window offen ist) einen Stackoverflow. Dieser wird aber von der catch Schleife eingefangen. Gut, die Funktion (Datatransfer) wird dann abgebrochen aber das Programm läuft noch. Wenn ich das Programm ohne Debugger durchlaufe verschwindet bzw. stürzt es einfach ab.</p>
<p>Früher hat der Datatransfer einwandfrei funktioniert (kein Stackoverflow) aber jetzt geht er nicht mehr. Ich weis jedoch leider nicht mehr was ich genau geändert habe damit es zu diesem Fehler kommt.</p>
<p>Achja; der Stackoverflow passiert eben jetzt wenn in der aufzurufenden Funktion entweder ein SaveDialog oder OpenDialog Fenster bzw. MsgDlg-&gt;ShowModal() aufrufe und ebendieses Fenster noch offen ist. (Wenn es wieder geschlossen ist funktioniert das Programm wieder ordentlich)</p>
<p>Hoffentlich könnt ihr mir helfen! Ich verstehe einfach nicht warum das Aufrufe eines Fensters dann zu so einem Stackoverflow führt! <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/532823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532823</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 04 Jun 2004 06:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 06:50:22 GMT]]></title><description><![CDATA[<p>Tja ich fürchte die einzige Lösungsmöglichkeit ist das Einlesen der Daten in einen Thread abzuspalten. Ursache wird wohl sein, dass die Dialoge modal aufgerufen werden. Solange modale Dialoge offen sind, führt das Programm keine anderen Funktionen aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532839</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 04 Jun 2004 06:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 08:59:37 GMT]]></title><description><![CDATA[<p>Oje. Du meinst das ich jetzt jedes Fenster das ich aufrufe muss in einem eigenen Thread stehen?? Das wird verdammt schwer.</p>
<p>Aber warum ist es dann früher gegangen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532927</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 04 Jun 2004 08:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 09:27:21 GMT]]></title><description><![CDATA[<p>Nein, ich meinte nur die On...Read-Funktionen müssen in einen Thread ausgelagert werden. Ein Thread läuft unabhängig von der App., deshalb läuft er weiter, auch wenn ein modales Form aufgerufen wird.</p>
<p>Wenn öffnest Du den SaveDialog denn? (Ist der überhaupt modal?) Notfalls versuch doch mal, die Daten zuerst komplett in einen Puffer zu schreiben und erst wenn die Übertragung komplett ist, den SaveDialog zu öffnen...</p>
<p>Was hast Du denn alles geändert, seit es noch funktinierte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532952</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 04 Jun 2004 09:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 10:47:58 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Was hast Du denn alles geändert, seit es noch funktinierte?</p>
</blockquote>
<p>Sehr viel. Deswegen weis ich nicht an was das Problem liegt.</p>
<p>Joe_M. schrieb:</p>
<blockquote>
<p>Wenn öffnest Du den SaveDialog denn? (Ist der überhaupt modal?) Notfalls versuch doch mal, die Daten zuerst komplett in einen Puffer zu schreiben und erst wenn die Übertragung komplett ist, den SaveDialog zu öffnen...</p>
</blockquote>
<p>Die Übertragung für den Datentransfer ist dann schon beendet, aber es werden einfach andere (chat) Pakete übermittelt.</p>
<p>Joe_M. schrieb:</p>
<blockquote>
<p>Nein, ich meinte nur die On...Read-Funktionen müssen in einen Thread ausgelagert werden. Ein Thread läuft unabhängig von der App., deshalb läuft er weiter, auch wenn ein modales Form aufgerufen wird.</p>
</blockquote>
<p>Der Fehler passiert ja wenn ich die Empfangen Funktion aufrufe und nicht OnRead! Und wenn ich dann Empfangen aufrufe kommt doch wieder der Bug??!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533060</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 04 Jun 2004 10:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 11:21:05 GMT]]></title><description><![CDATA[<p>Schau mal - beim Auftreten des Stack Overflows - in das Calling-Stack window...<br />
Da findest du alle Funktionsaufrufe die aktuell auf dem stack liegen..</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533087</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Fri, 04 Jun 2004 11:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Fri, 04 Jun 2004 20:27:07 GMT]]></title><description><![CDATA[<p>Also ich kann da nichts auslesen;</p>
<pre><code class="language-cpp">Empfangen();
Protokoll(); //Diese Funktion wird im ServerSocketClientRead aufgerufen
ServerSocketClientRead(); //Empfangen der msg (im Socket onclientread)
TServerWinSocket::ClientRead;
TCustomWinSocket::Event
</code></pre>
<p>Weiter unten sind dann ziemlich viele</p>
<p>C:\Windows\system32\user32.dll</p>
<p>Ich habe sowas noch nie analysiert daher kann ich da auch nichts deuten..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533196</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 04 Jun 2004 20:27:07 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Sat, 05 Jun 2004 07:24:16 GMT]]></title><description><![CDATA[<p>Heureka!!</p>
<p>Ich habe einfach einmal die Größe des Stacks auf die mögliche Maximalgröße verändert und siehe da, auf einmal gibt es keinen Stack Overflow mehr!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533365</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 05 Jun 2004 07:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to Stackoverflow beim aufrufen einer Funktion in der ein Fenster offen ist! on Sun, 06 Jun 2004 20:16:57 GMT]]></title><description><![CDATA[<p>Kann das irgendwelche Nachteile haben wenn ich die Stackgröße auf den maximal Wert stelle??</p>
<p>Wie groß ist der Stack überhaupt auf einem Rechner??<br />
Ich kenn mich in Sachen Stack nur im Gebiet der µC's aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/534595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/534595</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sun, 06 Jun 2004 20:16:57 GMT</pubDate></item></channel></rss>