<?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[Frage zu typedef bool (callback *mycallback)]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bin auf folgendes typedef gestoßen:</p>
<pre><code>typedef BOOL (CALLBACK *MYCALLBACK)(INT*, INT*, LPVOID);
</code></pre>
<p>Was hat das CALLBACK in der ersten Klammer zu bedeuten?</p>
<p>MfG<br />
Scarabol</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260024/frage-zu-typedef-bool-callback-mycallback</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 15:48:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260024.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Jan 2010 21:26:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 21:26:26 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bin auf folgendes typedef gestoßen:</p>
<pre><code>typedef BOOL (CALLBACK *MYCALLBACK)(INT*, INT*, LPVOID);
</code></pre>
<p>Was hat das CALLBACK in der ersten Klammer zu bedeuten?</p>
<p>MfG<br />
Scarabol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847773</guid><dc:creator><![CDATA[Scarabol]]></dc:creator><pubDate>Sat, 30 Jan 2010 21:26:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 21:45:14 GMT]]></title><description><![CDATA[<p><em>Edit: Hier stand Unsinn.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847779</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 30 Jan 2010 21:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 21:38:24 GMT]]></title><description><![CDATA[<p>Falsch.<br />
Es geht um die Calling-Convention:</p>
<pre><code class="language-cpp">#define CALLBACK    __stdcall
</code></pre>
<p>Default ist bei MSVC Compilern __cdecl, d.h. das Makro erfüllt sehr wohl einen Zweck.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847781</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 30 Jan 2010 21:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 21:41:29 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>kannst du das etwas detailierter erklären? Ich versteh nicht was das Makro bewirken soll?</p>
<p>MfG<br />
Scarabol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847783</guid><dc:creator><![CDATA[Scarabol]]></dc:creator><pubDate>Sat, 30 Jan 2010 21:41:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 22:05:04 GMT]]></title><description><![CDATA[<p>Die Calling-Convention definiert, wie ein Funktionsaufruf zu erfolgen hat, z.B. wie Parameter übergeben werden, wie der Returnwert zurückgegeben wird etc.</p>
<p>Wenn du ohne Angabe eine Calling-Convention eine Funktion oder einen Funktionszeiger definierst, dann wird die Default-Calling-Convention genommen, und die ist bei MSVC eben &quot;cdecl&quot;.</p>
<p>Da es sich auf Windows Plattformen eingebürgert hat, als Calling-Convention für Callback Funktionen nicht &quot;cdecl&quot; sondern &quot;stdcall&quot; zu verwenden, muss man das bei einer Callback-Funktion auch angeben, sonst nimmt der Compiler per Default das falsche. Genauso bei Funktionszeigern für Callback-Funktionen.</p>
<p>In ein Makro verpackt wird das ganze dann, weil Microsoft auf anderen Plattformen (Mac, ...) z.T. die selben Header-Files verwendet. Die Compiler dieser Plattformen kennen dann u.U. kein &quot;__stdcall&quot;. Auf Mac ist CALLBACK z.B. als &quot;_pascal&quot; definiert. Das Makro CALLBACK kann man so überall verwenden, wo man eine Callback Funktion definiert, oder einen Zeiger für eine Callback-Funktion. Ohne wissen zu müssen, ob nun __stdcall oder _cdecl oder __was_weiss_ich die Calling-Convention für Callbacks ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847793</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 30 Jan 2010 22:05:04 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 22:07:47 GMT]]></title><description><![CDATA[<p>Wenn ich jetzt eine Funktion hab die als Callback dient und eine die den Callback erhalten soll also:</p>
<pre><code>BOOL mycallback(INT *, INT *, LPVOID);

// func(MYCALLBACK call);
func(mycallback);
</code></pre>
<p>Hier bekomme ich trotzdem einen Fehler, also wie muss ich mycallback richtig deklarieren?<br />
Bzw. Wie kann ich mycallback als __stdcall deklarieren?</p>
<p>MfG<br />
Scarabol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847798</guid><dc:creator><![CDATA[Scarabol]]></dc:creator><pubDate>Sat, 30 Jan 2010 22:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu typedef bool (callback *mycallback) on Sat, 30 Jan 2010 23:07:23 GMT]]></title><description><![CDATA[<p>Mit</p>
<pre><code class="language-cpp">BOOL CALLBACK mycallback(INT *, INT *, LPVOID);
</code></pre>
<p>Oder auch</p>
<pre><code class="language-cpp">BOOL __stdcall mycallback(INT *, INT *, LPVOID);
</code></pre>
<p>(Ist aber in dem Fall weniger zu bevorzugen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847834</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Sat, 30 Jan 2010 23:07:23 GMT</pubDate></item></channel></rss>