<?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[Exceptions und Zeiger dereferenzieren]]></title><description><![CDATA[<p>Hallo.</p>
<p>Lässt sich denn keine SEH-Exception zu einer C++-Exceptionkonvertieren wenn das dereferenzieren eines Zeigers fehlschlägt?<br />
Das soetwas klappt, weiß ich. Aber nicht wie.<br />
Da ich denke es könnte compilerspezifisch sein, ich nutze VC++ 2008 Express.</p>
<p>Hier mein Ansatz, wirft nichts und crashed fröhlich wenn ein Zeiger 0 ist:</p>
<pre><code class="language-cpp">float x;
	float y;
	float z;

	try
	{
		DWORD gameBase	= *reinterpret_cast&lt;DWORD*&gt;(ROM_GAMEBASE);
		DWORD player	= *reinterpret_cast&lt;DWORD*&gt;(gameBase + PLAYERPOINTER);

		x			= *reinterpret_cast&lt;float*&gt;(player + OBJECT_XPOS);
		y			= *reinterpret_cast&lt;float*&gt;(player + OBJECT_YPOS);
		z			= *reinterpret_cast&lt;float*&gt;(player + OBJECT_ZPOS);
	}
	catch(...)
	{
		wxMessageBox(L&quot;Couldn't set waypoint. Try again&quot;, L&quot;Navigator Error&quot;, wxOK | wxICON_ERROR, this);
		return;
	}
</code></pre>
<p>Würde mich über Hilfe freuen, danke. <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="🙂"
    /><br />
Grüße,<br />
Flo</p>
<p>Edit: Argh, hätte wohl eher ins Win Forum gehört. Bin schwer müde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256927/exceptions-und-zeiger-dereferenzieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 23:06:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256927.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Dec 2009 03:28:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exceptions und Zeiger dereferenzieren on Sun, 20 Dec 2009 03:31:16 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Lässt sich denn keine SEH-Exception zu einer C++-Exceptionkonvertieren wenn das dereferenzieren eines Zeigers fehlschlägt?<br />
Das soetwas klappt, weiß ich. Aber nicht wie.<br />
Da ich denke es könnte compilerspezifisch sein, ich nutze VC++ 2008 Express.</p>
<p>Hier mein Ansatz, wirft nichts und crashed fröhlich wenn ein Zeiger 0 ist:</p>
<pre><code class="language-cpp">float x;
	float y;
	float z;

	try
	{
		DWORD gameBase	= *reinterpret_cast&lt;DWORD*&gt;(ROM_GAMEBASE);
		DWORD player	= *reinterpret_cast&lt;DWORD*&gt;(gameBase + PLAYERPOINTER);

		x			= *reinterpret_cast&lt;float*&gt;(player + OBJECT_XPOS);
		y			= *reinterpret_cast&lt;float*&gt;(player + OBJECT_YPOS);
		z			= *reinterpret_cast&lt;float*&gt;(player + OBJECT_ZPOS);
	}
	catch(...)
	{
		wxMessageBox(L&quot;Couldn't set waypoint. Try again&quot;, L&quot;Navigator Error&quot;, wxOK | wxICON_ERROR, this);
		return;
	}
</code></pre>
<p>Würde mich über Hilfe freuen, danke. <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="🙂"
    /><br />
Grüße,<br />
Flo</p>
<p>Edit: Argh, hätte wohl eher ins Win Forum gehört. Bin schwer müde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825180</guid><dc:creator><![CDATA[Icematix]]></dc:creator><pubDate>Sun, 20 Dec 2009 03:31:16 GMT</pubDate></item><item><title><![CDATA[Reply to Exceptions und Zeiger dereferenzieren on Sun, 20 Dec 2009 12:16:36 GMT]]></title><description><![CDATA[<p>s. <a href="http://stackoverflow.com/questions/315948/c-catching-all-exceptions" rel="nofollow">http://stackoverflow.com/questions/315948/c-catching-all-exceptions</a></p>
<blockquote>
<p>For catch(...) to work on all exceptions make sure that in the C++ settings, &quot;Enable C++ Exceptions&quot; is set to &quot;Yes With SEH Exceptions&quot;</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1825291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825291</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 20 Dec 2009 12:16:36 GMT</pubDate></item><item><title><![CDATA[Reply to Exceptions und Zeiger dereferenzieren on Sun, 20 Dec 2009 13:36:08 GMT]]></title><description><![CDATA[<p>Wieso machst du nicht was Standardkonformes?</p>
<pre><code class="language-cpp">template &lt;typename Dest, typename Source&gt;
Dest&amp; cast_and_dereference(Source* src)
{
    if (src == NULL)
        throw std::runtime_error(&quot;null pointer dereferenced&quot;);

    return *reinterpret_cast&lt;Dest*&gt;(src);
}

DWORD player = cast_and_dereference&lt;DWORD&gt;(gameBase + PLAYERPOINTER);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1825344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825344</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 20 Dec 2009 13:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to Exceptions und Zeiger dereferenzieren on Sun, 20 Dec 2009 16:14:22 GMT]]></title><description><![CDATA[<p>Icematix schrieb:</p>
<blockquote>
<p>Hallo.</p>
<p>Lässt sich denn keine SEH-Exception zu einer C++-Exceptionkonvertieren wenn das dereferenzieren eines Zeigers fehlschlägt?<br />
Das soetwas klappt, weiß ich. Aber nicht wie.</p>
</blockquote>
<p>Kann nie zuverlässig funktionieren. Warum wurde schon oft erklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825438</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 20 Dec 2009 16:14:22 GMT</pubDate></item></channel></rss>