<?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[Nicht ganz triviales Funktionszeigerproblem]]></title><description><![CDATA[<p>Hi,<br />
ich hab mal ne ganz dumme Frage, sie hat eigentlich mehr mit der Syntax von C++ zu tuen, aber ich finde nirgendswo dazu hilfe, deshalb probier ichs hier mal:</p>
<p>Beispiel: Erzeugen eines Fensters<br />
Ich muss irgendwann die Adresse der Callback routine in einer Struktur speichern, das sieht dann so aus:</p>
<pre><code>wc.lpfnWndProc = (WNDPROC) WndProc;
</code></pre>
<p>Mein problem ist jetzt, dass besagte Callback routine in einer Klasse liegt, im Headerfile wie folgt deklariert:</p>
<pre><code>LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
</code></pre>
<p>Beim kompilieren meckert der Kompiler rum, so ginge es ja nun nicht. Auch ein:</p>
<pre><code>wc.lpfnWndProc = (WNDPROC) this-&gt;WndProc;
</code></pre>
<p>brachte keine Verbesserung. Kann mir vielleicht jemand helfen? Ich kann zur not die Routine auch ausserhalb der Klasse implementieren, dann sollte es auch gehen, aber mich würde trotzdem mal interessieren wie man es richtig macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/82906/nicht-ganz-triviales-funktionszeigerproblem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 08:28:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/82906.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Aug 2004 00:16:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 00:16:34 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich hab mal ne ganz dumme Frage, sie hat eigentlich mehr mit der Syntax von C++ zu tuen, aber ich finde nirgendswo dazu hilfe, deshalb probier ichs hier mal:</p>
<p>Beispiel: Erzeugen eines Fensters<br />
Ich muss irgendwann die Adresse der Callback routine in einer Struktur speichern, das sieht dann so aus:</p>
<pre><code>wc.lpfnWndProc = (WNDPROC) WndProc;
</code></pre>
<p>Mein problem ist jetzt, dass besagte Callback routine in einer Klasse liegt, im Headerfile wie folgt deklariert:</p>
<pre><code>LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
</code></pre>
<p>Beim kompilieren meckert der Kompiler rum, so ginge es ja nun nicht. Auch ein:</p>
<pre><code>wc.lpfnWndProc = (WNDPROC) this-&gt;WndProc;
</code></pre>
<p>brachte keine Verbesserung. Kann mir vielleicht jemand helfen? Ich kann zur not die Routine auch ausserhalb der Klasse implementieren, dann sollte es auch gehen, aber mich würde trotzdem mal interessieren wie man es richtig macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583420</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 00:16:34 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 18:43:43 GMT]]></title><description><![CDATA[<p>Du scheinst einen C++-Wrapper für WinAPI basteln zu wollen. Vielleicht helfen Die einige Beispiele weiter:</p>
<p><a href="http://zp.lo3.wroc.pl/cdragan/corner.web?page=winapi" rel="nofollow">http://zp.lo3.wroc.pl/cdragan/corner.web?page=winapi</a><br />
<a href="http://www.programmersheaven.com/zone3/cat1130/26603.htm" rel="nofollow">http://www.programmersheaven.com/zone3/cat1130/26603.htm</a><br />
etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583426</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Mon, 16 Aug 2004 18:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 07:02:32 GMT]]></title><description><![CDATA[<p>Erhard, du solltest dir selbst vielleicht mal anschauen was sich hinter den Links verbirgt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Was hat <a href="http://www.winapi.net/index.php?inhalt=tipp13" rel="nofollow">http://www.winapi.net/index.php?inhalt=tipp13</a> mit dem Topic zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583476</guid><dc:creator><![CDATA[tipp13]]></dc:creator><pubDate>Mon, 16 Aug 2004 07:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 07:04:39 GMT]]></title><description><![CDATA[<p>und die beiden anderen Links kommen auf das selbe Produkt raus *lol*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583477</guid><dc:creator><![CDATA[tipp13]]></dc:creator><pubDate>Mon, 16 Aug 2004 07:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 13:59:27 GMT]]></title><description><![CDATA[<p>Hm, irgendwie helfen mir diese wrapper nicht weiter. Um das Problem nochmal genauer zu beschreiben:</p>
<p>Klasse glwindow mit 2 methoden in der glwrapper.cpp:</p>
<pre><code>LRESULT CALLBACK glwindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){....}

BOOL glwindow::CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag){
....
wc.lpfnWndProc = (WNDPROC) WndProc; // &lt;-- funzt nicht
....
}
</code></pre>
<p>Wie man sieht probiere ich in CreateGLWindow() die Adresse der WndProc-Funktion in einer Struktur abzuspeichern, und genau das geht nicht. Weis jemand wie man das korrekt machen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583806</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 13:59:27 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 14:24:41 GMT]]></title><description><![CDATA[<p>Guck in die WinAPI FAQ.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583823</guid><dc:creator><![CDATA[jojojo]]></dc:creator><pubDate>Mon, 16 Aug 2004 14:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 14:36:55 GMT]]></title><description><![CDATA[<p>Methoden liefern immer den thisptr als Parameter mit.<br />
Mach fuer dein Callback eine normale C Funktion.<br />
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)<br />
{....}</p>
<p>Schau dir dazu noch SetWindowLong an um die entsprechende Instanz dereferenzieren zu koennen und ruf dann deren &quot;pobj-&gt;my_callback&quot; mit entsprechenden Parametern auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583835</guid><dc:creator><![CDATA[cppppp]]></dc:creator><pubDate>Mon, 16 Aug 2004 14:36:55 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 17:55:54 GMT]]></title><description><![CDATA[<p>Vielleicht bin ich ja zu deumm aber ich verstehe das nicht und habe keine Ahnung wie ich das nun implementieren soll. Im FAQ wird das auch diskutiert habt ihr Recht, und mit diesem API dann zur Laufzeit ne neue WndProc setzen, das klingt logisch, aber ich hab keinen Plan wie ich das implementieren soll. Irgendwie hat man mit C++ nur Ärger, und muss ständig Probleme lösen die bei anderen Sprachen nicht auftreten. <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/583995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583995</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 17:55:54 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 18:26:43 GMT]]></title><description><![CDATA[<p>Du solltest erstmal das Problem verstehen.</p>
<p>Mach einfach mal vor die Methode ein static. Dann geht es. Wie dann dennoch an den Zeiger auf das Objekt kommt steht in der FAQ.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584027</guid><dc:creator><![CDATA[static]]></dc:creator><pubDate>Mon, 16 Aug 2004 18:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 19:10:23 GMT]]></title><description><![CDATA[<p>Mh, wenn ich die Methode static mache kann ich nciht mehr auf die Variablen der klasse zugreifen! Und ja in der FAQ steht da was, vonwegen der this ptr ist noch ein zusätzlicher parameter bei dem wndproc und deshalb geht das alles nicht, trtzdem kriege ich dieses Problem nicht in den Griff!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584066</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 19:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 19:32:22 GMT]]></title><description><![CDATA[<p>Hat denn hier keiner vielleicht ein einfaches Coebeispiel wie man das mit SetWindowLong in WM_CREATE genau macht? Ich meine wenn ich meine eigentliche wndproc static mache wird das ganze doch gar nicht erst kompilieren, weil ich auf variablen innerhalb der Klasse zugreife mit ihr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584100</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 19:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 19:59:45 GMT]]></title><description><![CDATA[<p>Wenn du das noch nicht mal verstehst würde ich dein Projekt abbrechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584129</guid><dc:creator><![CDATA[makeudown]]></dc:creator><pubDate>Mon, 16 Aug 2004 19:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 20:06:14 GMT]]></title><description><![CDATA[<p>Du würdest mein projekt abbrechen? Lol, du kennst mich noch nichtmal , also sei nicht so anmaßend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584132</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 20:06:14 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 20:25:49 GMT]]></title><description><![CDATA[<p>Ich kenn dich zwar nicht, aber du verhälst dich wie ein elender Newbie.</p>
<p>Mit google würdest du schon Beispiele finden, wenn du dir Mühe geben würdest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584141</guid><dc:creator><![CDATA[makeudown]]></dc:creator><pubDate>Mon, 16 Aug 2004 20:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 20:31:41 GMT]]></title><description><![CDATA[<p>Ich habe das Problem auch bereits mittels google gelöst, was bin ich nur für ein Newbie, sollte mich was schämen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584145</guid><dc:creator><![CDATA[Belial]]></dc:creator><pubDate>Mon, 16 Aug 2004 20:31:41 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 20:32:14 GMT]]></title><description><![CDATA[<p>Endlich!!!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/584146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584146</guid><dc:creator><![CDATA[makeudown]]></dc:creator><pubDate>Mon, 16 Aug 2004 20:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht ganz triviales Funktionszeigerproblem on Mon, 16 Aug 2004 21:23:39 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=3630" rel="nofollow">Gerard</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/584184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584184</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 16 Aug 2004 21:23:39 GMT</pubDate></item></channel></rss>