<?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[Funktionszeiger an Dialog übergeben]]></title><description><![CDATA[<p>allo nochmal,</p>
<p>ich bekomm hier langsam nen Vogel <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>
<p>Und zwar will ich &quot;einfach&quot; nur nen Funktionszeiger an einen Dialog übergeben. Also einfach nur die Adresse der Funktion in eine Membervariable des Dialogs den ich danach über DoModal() öffnen möchte.</p>
<p>im Dialog hab ich eine Membervariable folgendermaßen angelegt:</p>
<pre><code class="language-cpp">typedef void(*func)(void);
	func pFunc;
</code></pre>
<p>So und in der Hauptanwendung versuche ich nun einfach der Variablen einen Zeiger zuzuweisen:</p>
<pre><code class="language-cpp">CDlgDialog1 dlg;
	dlg.pFunc = TestFunc;
</code></pre>
<p>Dabei ist &quot;void TestFunc(void)&quot; dann eine weitere Funktion der Hauptanwendung.</p>
<p>Fehler in dem obigen Falle lautet:</p>
<blockquote>
<p>f:\projekte 2003\PointerInDlg\PointerInDlg\PointerInDlgDlg.cpp(156): error C2440: '=': 'void (__thiscall CPointerInDlgDlg::* )(void)' kann nicht in 'CDlgDialog1::func' konvertiert werden</p>
</blockquote>
<p>Ich hatte aber auch schon ca. 20 andere Fehler zwischendurch, aber ich hab hier jetzt extra mal meine Startvariante gepostet, die ist am einfachsten - funktionieren ja eh alle bisher nicht <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>
<p>Aber egal wie ich mich auch drehe und wende (hab schon alle möglichen casts ausprobiert) - ich bekomme es rinfach nicht hin <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/119905/funktionszeiger-an-dialog-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 19:46:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119905.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Sep 2005 20:14:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionszeiger an Dialog übergeben on Tue, 06 Sep 2005 20:16:39 GMT]]></title><description><![CDATA[<p>allo nochmal,</p>
<p>ich bekomm hier langsam nen Vogel <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>
<p>Und zwar will ich &quot;einfach&quot; nur nen Funktionszeiger an einen Dialog übergeben. Also einfach nur die Adresse der Funktion in eine Membervariable des Dialogs den ich danach über DoModal() öffnen möchte.</p>
<p>im Dialog hab ich eine Membervariable folgendermaßen angelegt:</p>
<pre><code class="language-cpp">typedef void(*func)(void);
	func pFunc;
</code></pre>
<p>So und in der Hauptanwendung versuche ich nun einfach der Variablen einen Zeiger zuzuweisen:</p>
<pre><code class="language-cpp">CDlgDialog1 dlg;
	dlg.pFunc = TestFunc;
</code></pre>
<p>Dabei ist &quot;void TestFunc(void)&quot; dann eine weitere Funktion der Hauptanwendung.</p>
<p>Fehler in dem obigen Falle lautet:</p>
<blockquote>
<p>f:\projekte 2003\PointerInDlg\PointerInDlg\PointerInDlgDlg.cpp(156): error C2440: '=': 'void (__thiscall CPointerInDlgDlg::* )(void)' kann nicht in 'CDlgDialog1::func' konvertiert werden</p>
</blockquote>
<p>Ich hatte aber auch schon ca. 20 andere Fehler zwischendurch, aber ich hab hier jetzt extra mal meine Startvariante gepostet, die ist am einfachsten - funktionieren ja eh alle bisher nicht <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>
<p>Aber egal wie ich mich auch drehe und wende (hab schon alle möglichen casts ausprobiert) - ich bekomme es rinfach nicht hin <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/866584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866584</guid><dc:creator><![CDATA[Tow-B.de]]></dc:creator><pubDate>Tue, 06 Sep 2005 20:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger an Dialog übergeben on Wed, 07 Sep 2005 05:15:19 GMT]]></title><description><![CDATA[<p>ein Blick ins C++-Forum hat mir abhilfe geschafft:</p>
<pre><code class="language-cpp">typedef void(CPointerInDlgDlg::*func)(void);
</code></pre>
<p><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/866696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866696</guid><dc:creator><![CDATA[Tow-B.de]]></dc:creator><pubDate>Wed, 07 Sep 2005 05:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger an Dialog übergeben on Wed, 07 Sep 2005 05:23:29 GMT]]></title><description><![CDATA[<p>Solche Selbstgespräche kenne ich. <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="😉"
    /><br />
Aber, irgendwie verstehe ich den Sinn eines Funktionszeigers nicht?<br />
Was hat man dadurch erreicht? Kannst du nicht einfach so die Methoden eines Objektes nutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866698</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Wed, 07 Sep 2005 05:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger an Dialog übergeben on Wed, 07 Sep 2005 06:18:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ja gut, diese mal hatte ich zwar die SuFu für MFC und die MFC-FAQ benutzt, sowie google, erstes war ziemlich spärlich, zweites hatte ich alles nicht so richtig kapiert <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="😉"
    /> Aber hier im CPP-Teil gab es nen guten Link zu nem Tutorial, bei dem mir das Licht aufgegangen ist.</p>
<p>Viel schlimmer ist ja noch, wenn einem beim nachträglichen durchlesen der Fehler schon selbst auffällt <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>Zu dem Sinn:<br />
Ich brauche in dem Dialog selbst den Zeiger eigentlich gar nicht, sonst könnte ich ja einfach this vom aufrufenden Objekt übergeben und die Methoden direkt aufrufen.<br />
Dieser Dialog managed meine Dateninput-PlugIn-DLLs (laden/entladen/konfigurieren), um die Daten aus nem PlugIn in das Array des Hauptprogramms zu schreiben benutze ich eine Callback-Funktion, dessen Adresse ich beim initialisieren des PlugIns übergebe, die Initialisierung findet aber eben in dem Dialog statt und dazu brauch ich die Adresse.</p>
<p>Wenn ich mir das so durchlese - hmm, wenn ich Methoden aufrufen könnte, habe ich ja auch deren Adresse zum übergeben <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="🙄"
    /><br />
Muss ich mal probieren ob das übersichtlicher ist <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="🙂"
    /> Naja so hab ich wenigstens jetzt die Grundlagen über Funktionspointer mal richtig(er) gelernt <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/866718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866718</guid><dc:creator><![CDATA[Tow-B.de]]></dc:creator><pubDate>Wed, 07 Sep 2005 06:18:51 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger an Dialog übergeben on Wed, 07 Sep 2005 08:28:15 GMT]]></title><description><![CDATA[<p>Ok, um das ganze wirklich zu verstehen, muss ich mir mehr Zeit nehmen. Klingt schon ziemlich kompliziert. <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="😉"
    /><br />
Aber du schaffst das schon. Danke für die Aufklärung. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/866780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866780</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Wed, 07 Sep 2005 08:28:15 GMT</pubDate></item></channel></rss>