<?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[Pointer von CDialog zu PropertyPage]]></title><description><![CDATA[<p>Hallo erstmal.</p>
<p>Ich habe da also ein Programm mit diversen Tabs. Aus einem dieser Tabs rufe ich mit Hilfe von DoModal einen CDialog auf. Darin befinden sich verschiedene Eingabefelder die auf Knopfdruck sich verändernde Daten von meinem Tab, aus dem ich den neuen Dialog aufgerufen habe, neu initialisiert. Hierzu habe ich eine Methode in meiner Klasse des Tabs erstellt. Quasi eine get-Funktion. Diese möchte ich nun von meinem Dialog aufrufen. Um dies zu ermöglichen wollte ich einen Pointer vom Typ</p>
<pre><code class="language-cpp">CMyTab* pMyTab;
</code></pre>
<p>erstellen und ihm dann die Adresse meines Tabs übergeben.<br />
Problem: in meinem Dialog kennt er anscheinend meine Klasse CMyTab nicht. Da kommen dann solche tollen Kompilierungsfehlermeldungen:</p>
<pre><code class="language-cpp">error C2143: Syntaxfehler : Fehlendes ';' vor '*'
error C2501: 'CMyTab' : Fehlende Speicherklasse oder Typspezifizierer
</code></pre>
<p>Kann mir irgendjemand helfen? <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/174616/pointer-von-cdialog-zu-propertypage</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 19:26:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174616.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Mar 2007 10:20:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 10:20:05 GMT]]></title><description><![CDATA[<p>Hallo erstmal.</p>
<p>Ich habe da also ein Programm mit diversen Tabs. Aus einem dieser Tabs rufe ich mit Hilfe von DoModal einen CDialog auf. Darin befinden sich verschiedene Eingabefelder die auf Knopfdruck sich verändernde Daten von meinem Tab, aus dem ich den neuen Dialog aufgerufen habe, neu initialisiert. Hierzu habe ich eine Methode in meiner Klasse des Tabs erstellt. Quasi eine get-Funktion. Diese möchte ich nun von meinem Dialog aufrufen. Um dies zu ermöglichen wollte ich einen Pointer vom Typ</p>
<pre><code class="language-cpp">CMyTab* pMyTab;
</code></pre>
<p>erstellen und ihm dann die Adresse meines Tabs übergeben.<br />
Problem: in meinem Dialog kennt er anscheinend meine Klasse CMyTab nicht. Da kommen dann solche tollen Kompilierungsfehlermeldungen:</p>
<pre><code class="language-cpp">error C2143: Syntaxfehler : Fehlendes ';' vor '*'
error C2501: 'CMyTab' : Fehlende Speicherklasse oder Typspezifizierer
</code></pre>
<p>Kann mir irgendjemand helfen? <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/1237297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237297</guid><dc:creator><![CDATA[r0bb3n]]></dc:creator><pubDate>Thu, 01 Mar 2007 10:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 10:22:41 GMT]]></title><description><![CDATA[<p>Gut erkannt - wenn die PropertyPage-Klasse erst nach dem Dialog definiert wird, ist sie im Dialog noch nicht bekannt (und der C++-Compiler arbeitet sich sequentiell durch den Quelltext). Also mußt du deinem Compiler mitteilen, daß es diese Klasse gibt - Stichwort &quot;forward declaration&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237301</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Mar 2007 10:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 10:57:28 GMT]]></title><description><![CDATA[<p>Wie kann das denn sein, wenn ich doch erst einmal meinen Tab erstellen musste, um von da aus mit DoModal meinen Unterdialog aufzurufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>P.S. bin noch nicht wirklich mit C++ vertraut</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237330</guid><dc:creator><![CDATA[r0bb3n]]></dc:creator><pubDate>Thu, 01 Mar 2007 10:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 11:07:42 GMT]]></title><description><![CDATA[<p>Du hast die Klassen PropertyPage bzw. CMyTab und CMyDialog, die sich gegenseitig kennen müssen (der Tab, um einen Dialog erzeugen zu können, der Dialog benötigt Zugriff auf seinen Erzeuger). Und um das bewerkstelligen zu können, benötigst du Forward-Deklarationen (d.h. hier reicht vermutlich ein include an der richtigen Stelle:</p>
<pre><code class="language-cpp">//Tab.h
class CMyTab : public CPropertyPage
{
  ...
public:
  void OnButton1();
};

//Tab.cpp
#include &quot;Tab.h&quot;
#include &quot;Dlg.h&quot;

...

void CMyTab::OnButton1()
{
  CMyDialog dlg(this);
  dlg.doModal();
  ...
}

//Dlg.h
#include &quot;Tab.h&quot;

class CMyDialog : public CDialog
{
  CMyTab* pMyTab;
public:
  CMyDialog(CMyTab* caller)
  : CDialog(IDD_MYMIALOG,caller)
  , pMyTab(caller)
  {}
  ...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237335</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Mar 2007 11:07:42 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 12:34:51 GMT]]></title><description><![CDATA[<p>hmm,</p>
<pre><code class="language-cpp">error C2039: 'doModal' : Ist kein Element von 'CMyDialog'
</code></pre>
<p>achso, weiß nicht ob das wichtig ist, aber ich programmiere in C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237391</guid><dc:creator><![CDATA[r0bb3n]]></dc:creator><pubDate>Thu, 01 Mar 2007 12:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 12:48:22 GMT]]></title><description><![CDATA[<p>r0bb3n schrieb:</p>
<blockquote>
<p>hmm,</p>
<pre><code class="language-cpp">error C2039: 'doModal' : Ist kein Element von 'CMyDialog'
</code></pre>
</blockquote>
<p>Sorry, mein Fehler - DoModal() schreibt sich mit großem D.</p>
<blockquote>
<p>achso, weiß nicht ob das wichtig ist, aber ich programmiere in C++.</p>
</blockquote>
<p>Also das hätte ich jetzt nicht erwartet <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/1237412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237412</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Mar 2007 12:48:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von CDialog zu PropertyPage on Thu, 01 Mar 2007 13:04:52 GMT]]></title><description><![CDATA[<p>Boar, ich danke dir so sehr!!! Es geht!1 <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>
<p>Viele vielen Dank für deine Hilfe. Und wenn ich wieder was habe, dann melde ich mich wieder. <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/1237431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237431</guid><dc:creator><![CDATA[r0bb3n]]></dc:creator><pubDate>Thu, 01 Mar 2007 13:04:52 GMT</pubDate></item></channel></rss>