<?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[ExitProcess Error]]></title><description><![CDATA[<p>Hallo,<br />
wenn ich mein Programm schließe, kommt folgende Meldung:</p>
<pre><code>Unbehandelte Ausnahme bei 0x75d3a4b9 in Click-Game.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefeee.
</code></pre>
<p>Der Fehler zeigt auf die letzte Zeile von:</p>
<pre><code>void __cdecl __crtExitProcess (
        int status
        )
{
        __crtCorExitProcess(status);

        /*
         * Either mscoree.dll isn't loaded,
         * or CorExitProcess isn't exported from mscoree.dll,
         * or CorExitProcess returned (should never happen).
         * Just call ExitProcess.
         */

        ExitProcess(status);
}
</code></pre>
<p>Benutze;<br />
Microsoft Visual C++ 2010 Express, Debug-Modus<br />
SFML (<a href="http://sfml-dev.org" rel="nofollow">sfml-dev.org</a>)</p>
<p>Wo könnte der Fehler liegen oder welche Fehler verursachen so einen Exit-Error?<br />
MfG Trampeltier</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323960/exitprocess-error</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 13:42:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323960.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Feb 2014 16:33:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 16:35:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wenn ich mein Programm schließe, kommt folgende Meldung:</p>
<pre><code>Unbehandelte Ausnahme bei 0x75d3a4b9 in Click-Game.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefeee.
</code></pre>
<p>Der Fehler zeigt auf die letzte Zeile von:</p>
<pre><code>void __cdecl __crtExitProcess (
        int status
        )
{
        __crtCorExitProcess(status);

        /*
         * Either mscoree.dll isn't loaded,
         * or CorExitProcess isn't exported from mscoree.dll,
         * or CorExitProcess returned (should never happen).
         * Just call ExitProcess.
         */

        ExitProcess(status);
}
</code></pre>
<p>Benutze;<br />
Microsoft Visual C++ 2010 Express, Debug-Modus<br />
SFML (<a href="http://sfml-dev.org" rel="nofollow">sfml-dev.org</a>)</p>
<p>Wo könnte der Fehler liegen oder welche Fehler verursachen so einen Exit-Error?<br />
MfG Trampeltier</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385042</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 24 Feb 2014 16:35:06 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 16:58:21 GMT]]></title><description><![CDATA[<p>Es wird vermutlich Speicher freigegeben, der schon mal freigegeben wurde. Beim exit werden noch Destruktoren aufgerufen, darin könnte eine delete für etwas schon gelöschtes stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385047</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 24 Feb 2014 16:58:21 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 17:23:46 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Es wird vermutlich Speicher freigegeben, der schon mal freigegeben wurde. Beim exit werden noch Destruktoren aufgerufen, darin könnte eine delete für etwas schon gelöschtes stehen.</p>
</blockquote>
<p>Das kann eigentlich nicht sein, dass das an delete-Aufrufen liegt, weil ich nur shared_ptr benutze.<br />
Meine Destruktoren sind außerdem alle leer.<br />
Ich benutze z.T. globale shared_ptr, aber das sollte nicht der Fehler sein, da ich es auch genau so in meinem letzten Projekt gemacht habe und es funktioniert hat. Ich hatte mit Debug- und Release Modus herumgespielt, aber da sollte alles soweit stimmen. Dennoch, könnte es sein, dass Visual Studio irgendwas falsch gespeichert hat? Sollte ich das Projekt einmal kurz neu machen und alle .cpp und .h Dateien neu hinzufügen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385054</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 24 Feb 2014 17:23:46 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 18:13:54 GMT]]></title><description><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values" rel="nofollow">http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_debug_values</a></p>
<blockquote>
<p>FEEEFEEE : &quot;Fee fee&quot;, Used by Microsoft's debug HeapFree() to mark freed heap memory. Some nearby internal bookkeeping values may have the high word set to FEEE as well.</p>
</blockquote>
<p>Zusammen mit der Fehlermeldung ergibt dies: Es wird versucht, von einer schon freigegebenen Stelle im Speicher den Wert zu nehmen und diesen als Zeiger zu dereferenzieren.</p>
<p>Trampeltier schrieb:</p>
<blockquote>
<p>.<br />
Ich benutze z.T. globale shared_ptr, aber das sollte nicht der Fehler sein, da ich es auch genau so in meinem letzten Projekt gemacht habe und es funktioniert hat. Ich hatte mit Debug- und Release Modus herumgespielt, aber da sollte alles soweit stimmen. Dennoch, könnte es sein, dass Visual Studio irgendwas falsch gespeichert hat? Sollte ich das Projekt einmal kurz neu machen und alle .cpp und .h Dateien neu hinzufügen?</p>
</blockquote>
<p>Ja, sicher. Dein Programm in der Entwicklungsphase ist garantiert richtig, also muss die milliardenfach geprüfte IDE einen noch unbekannten Fehler haben <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/2385065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385065</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 24 Feb 2014 18:13:54 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 21:26:21 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p><a href="http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values" rel="nofollow">http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_debug_values</a></p>
<blockquote>
<p>FEEEFEEE : &quot;Fee fee&quot;, Used by Microsoft's debug HeapFree() to mark freed heap memory. Some nearby internal bookkeeping values may have the high word set to FEEE as well.</p>
</blockquote>
<p>Zusammen mit der Fehlermeldung ergibt dies: Es wird versucht, von einer schon freigegebenen Stelle im Speicher den Wert zu nehmen und diesen als Zeiger zu dereferenzieren.</p>
<p>Trampeltier schrieb:</p>
<blockquote>
<p>.<br />
Ich benutze z.T. globale shared_ptr, aber das sollte nicht der Fehler sein, da ich es auch genau so in meinem letzten Projekt gemacht habe und es funktioniert hat. Ich hatte mit Debug- und Release Modus herumgespielt, aber da sollte alles soweit stimmen. Dennoch, könnte es sein, dass Visual Studio irgendwas falsch gespeichert hat? Sollte ich das Projekt einmal kurz neu machen und alle .cpp und .h Dateien neu hinzufügen?</p>
</blockquote>
<p>Ja, sicher. Dein Programm in der Entwicklungsphase ist garantiert richtig, also muss die milliardenfach geprüfte IDE einen noch unbekannten Fehler haben <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>
</blockquote>
<p>Dann gib mir bitte Beispiele, die eben diesen Fehler auslösen, ohne &quot;delete&quot; zu benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385101</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 24 Feb 2014 21:26:21 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 21:28:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::shared_ptr&lt;foo&gt; p1(new foo);
std::shared_ptr&lt;foo&gt; p2(p1.get()); // Kawumm.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385103</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 24 Feb 2014 21:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 21:31:32 GMT]]></title><description><![CDATA[<p>Trampeltier schrieb:</p>
<blockquote>
<p>Dann gib mir bitte Beispiele, die eben diesen Fehler auslösen, ohne &quot;delete&quot; zu benutzen.</p>
</blockquote>
<pre><code>int main(){
    int *p; //wird mit 0xFEEEFEEE initialisiert
    *p = 42; //crasht mit einer Zugriffsverletzung auf 0xFEEEFEEE
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385104</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 24 Feb 2014 21:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 22:00:03 GMT]]></title><description><![CDATA[<p>In meinem Beispiel erstelle ich einen shared_ptr, der global definiert ist und am anfang des Programmes initialisiert wird.<br />
Dieser shared_ptr wird dann in einen Vektor von shared_ptr sozusagen &quot;gepusht&quot;.<br />
Der Vektor wiederum ist Teil eines shared_ptr Objektes, welches in einen Vektor von shared_ptr Objekten &quot;gepusht&quot; wird. Dieser Vektor von shared_ptr Objekten ist wiederum in einem anderen Objekt.<br />
Wenn also jetzt der Destruktor dieses Objektes aufgerufen wird, was passiert dann genau?</p>
<p>Freue mich auf Antworten; Beispielcode gebe ich Morgen.<br />
Bin erstmal schlafen <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/2385107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385107</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 24 Feb 2014 22:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 22:00:21 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Trampeltier schrieb:</p>
<blockquote>
<p>Dann gib mir bitte Beispiele, die eben diesen Fehler auslösen, ohne &quot;delete&quot; zu benutzen.</p>
</blockquote>
<pre><code>int main(){
    int *p; //wird mit 0xFEEEFEEE initialisiert
    *p = 42; //crasht mit einer Zugriffsverletzung auf 0xFEEEFEEE
}
</code></pre>
</blockquote>
<p>p wird hier mit 0xCCCCCCCC initialisiert werden (uninitialisierter Stackspeicher). 0xFEEEFEEE ist eindeutig bereits freigegebener Heapspeicher...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385108</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 24 Feb 2014 22:00:21 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Mon, 24 Feb 2014 23:50:46 GMT]]></title><description><![CDATA[<p>Trampeltier schrieb:</p>
<blockquote>
<p>Dann gib mir bitte Beispiele, die eben diesen Fehler auslösen, ohne &quot;delete&quot; zu benutzen.</p>
</blockquote>
<p><strong>Dein</strong> Code. Den darfst du mal selber posten, wenn du genauere Hilfe dazu willst.</p>
<p>Du hast wirklich eine komische Einstellung zu diesem Forum. Sollen wir dir etwa beweisen, dass du selber den Fehler hast, wegen dem du hier fragst? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2385115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385115</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 24 Feb 2014 23:50:46 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Tue, 25 Feb 2014 12:15:47 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Trampeltier schrieb:</p>
<blockquote>
<p>Dann gib mir bitte Beispiele, die eben diesen Fehler auslösen, ohne &quot;delete&quot; zu benutzen.</p>
</blockquote>
<p><strong>Dein</strong> Code. Den darfst du mal selber posten, wenn du genauere Hilfe dazu willst.</p>
<p>Du hast wirklich eine komische Einstellung zu diesem Forum. Sollen wir dir etwa beweisen, dass du selber den Fehler hast, wegen dem du hier fragst? <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>
</blockquote>
<p>Was verstehst du nur falsch?<br />
Wenn ich doch solch eine Fehlermeldung bekomme, aber kein delete benutze, frage ich mich natürlich, welchen Fehler ich sonst begangen haben könnte.<br />
Diese Möglichkeiten kann ich dann mit meinem Code vergleichen und gucken, ob sie zutreffen....</p>
<p>EDIT:<br />
Ich glaube, ich habe den Fehler gefunden:</p>
<pre><code>std::vector &lt;std::shared_ptr &lt;classes::gui::GUIElement&gt;&gt; GUIElements;
			std::vector &lt;std::shared_ptr &lt;classes::gui::Button&gt;&gt; Buttons;
</code></pre>
<pre><code>void classes::gui::GUIManager::Add(std::shared_ptr &lt;classes::gui::GUIElement&gt; GuiElement)
{
	this-&gt;GUIElements.push_back(GuiElement);

	std::shared_ptr &lt;classes::gui::Button&gt; Button = std::dynamic_pointer_cast&lt;classes::gui::Button&gt;(GuiElement);
	if(Button != 0)// Ist GuiElement ein Button?
		this-&gt;Buttons.push_back(Button); // Dann füge es dem Button-Vektor hinzu
}
</code></pre>
<p>GUIelement ist nämlich eine virtuelle Klasse, auf der Button basiert.<br />
Ich brauche aber einen Vektor für alle GUIElement-shared_ptr und einen Vektor für einen Button-shared_ptr.<br />
Bei den Destruktoren dieser Vektoren nun, könnte da der Fehler liegen, weil eben der eine Vektor möglicherweise ein Element löschen will, das der andere Vektor schon gelöscht hat?<br />
Wenn ja, wie löse ich das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385163</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 25 Feb 2014 12:15:47 GMT</pubDate></item><item><title><![CDATA[Reply to ExitProcess Error on Tue, 25 Feb 2014 16:44:24 GMT]]></title><description><![CDATA[<p>Naja, scheint wohl eine Art Debug-Bug zu sein, der mit SFML zusammen hängt:<br />
<a href="http://en.sfml-dev.org/forums/index.php?topic=3976.0" rel="nofollow">http://en.sfml-dev.org/forums/index.php?topic=3976.0</a></p>
<p>Ich benutze jetzt ganz einfach TerminateProcess:<br />
int main()<br />
{<br />
. . .</p>
<p>#ifdef _WIN32<br />
#ifdef _DEBUG<br />
TerminateProcess(GetCurrentProcess(), EXIT_SUCCESS);<br />
#endif<br />
#endif<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385213</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 25 Feb 2014 16:44:24 GMT</pubDate></item></channel></rss>