<?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[Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard...]]></title><description><![CDATA[<p>Man das macht mich verrückt.<br />
Aber erst mal guten Tag.<br />
Habe das in der Überschrift genannte Buch.<br />
Bin bis Seite 149 gekommen. Ich habe mir das beispiel EX07A vorgenommen.<br />
Das Programm läuft auch aber nun will ich etwas ändern und bekomme nur Fehlermeldungen.</p>
<p>Das Programm erzeugt bei einem Linksklick auf die Ansicht ein nicht-Modales<br />
Dialogfenster mit zwei Buttons( OK und Abbrechen). Bis dahin alles super.<br />
Nun habe ich einen eigenen Button in das Dialogfenster eingebaut und eine Ereignisbehandlung eingefügt.<br />
Wenn man auf den Button klickt wird die Behandlungsfunktion<br />
void CEx07aDialog::OnButton1()<br />
{<br />
m_pView-&gt;schreiben(); // m_pView zeigt auf die Ansicht.<br />
}</p>
<p>aufgerufen.</p>
<p>In dieser Behandlungsfunktion will ich nun auf die Ansicht zugreifen, die das Dialogfenster erzeugt hat.<br />
In der Ansicht steht der Text das man einen Linksklick machen soll damit das Dialogfenster entsteht.<br />
Wenn ich nun im Dialogfenster auf meinen Button klicke soll in der Ansicht ein anderer Text erscheinen.</p>
<p>In die Ansicht habe ich die Memberfunktion „schreiben()“ eingefügt die das erledigen soll.<br />
Ich bekomme die Fehlermeldung<br />
„error C2039: 'schreiben' : Ist kein Element von 'CView'“</p>
<p>Was soll ich machen. Seufz.</p>
<p>cebion</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160066/kennt-jamand-quot-inside-visual-c-6-quot-von-kruglinski-shepard</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 10:28:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160066.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Sep 2006 15:44:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Thu, 21 Sep 2006 15:44:24 GMT]]></title><description><![CDATA[<p>Man das macht mich verrückt.<br />
Aber erst mal guten Tag.<br />
Habe das in der Überschrift genannte Buch.<br />
Bin bis Seite 149 gekommen. Ich habe mir das beispiel EX07A vorgenommen.<br />
Das Programm läuft auch aber nun will ich etwas ändern und bekomme nur Fehlermeldungen.</p>
<p>Das Programm erzeugt bei einem Linksklick auf die Ansicht ein nicht-Modales<br />
Dialogfenster mit zwei Buttons( OK und Abbrechen). Bis dahin alles super.<br />
Nun habe ich einen eigenen Button in das Dialogfenster eingebaut und eine Ereignisbehandlung eingefügt.<br />
Wenn man auf den Button klickt wird die Behandlungsfunktion<br />
void CEx07aDialog::OnButton1()<br />
{<br />
m_pView-&gt;schreiben(); // m_pView zeigt auf die Ansicht.<br />
}</p>
<p>aufgerufen.</p>
<p>In dieser Behandlungsfunktion will ich nun auf die Ansicht zugreifen, die das Dialogfenster erzeugt hat.<br />
In der Ansicht steht der Text das man einen Linksklick machen soll damit das Dialogfenster entsteht.<br />
Wenn ich nun im Dialogfenster auf meinen Button klicke soll in der Ansicht ein anderer Text erscheinen.</p>
<p>In die Ansicht habe ich die Memberfunktion „schreiben()“ eingefügt die das erledigen soll.<br />
Ich bekomme die Fehlermeldung<br />
„error C2039: 'schreiben' : Ist kein Element von 'CView'“</p>
<p>Was soll ich machen. Seufz.</p>
<p>cebion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141973</guid><dc:creator><![CDATA[cebion]]></dc:creator><pubDate>Thu, 21 Sep 2006 15:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Thu, 21 Sep 2006 17:05:17 GMT]]></title><description><![CDATA[<p>Was für ein Typ ist m_pView?<br />
Wenn das ein CView ist, wie ich aufgrund der Meldung vermute, dann musst du vorher casten. <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/1142025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142025</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 21 Sep 2006 17:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Fri, 22 Sep 2006 08:38:28 GMT]]></title><description><![CDATA[<p>Hallo estartu. Erstmal Danke.<br />
Es ist so wie du vermutest. In der CEx07aDialog.h steht &quot;CView* m_pView;&quot; und &quot;CEx07aDialog(CView* pView);&quot; Konstuktor der Dialogklasse.<br />
m_pView ist vom Typ CView. Wie soll ich den casten?</p>
<p>Im Buch steht das man dem Dialogfenster einen Zeiger der Ansicht, die ja von CView die Eigenschaften erbt, übergeben kann oder um das Dialogfenster mit jeder Ansicht zu verwenden einen Zeiger vom Typ CView übergibt.</p>
<p>Als ich die Fehlermeldung bekam habe ich versucht dem Dialogfenster einen Zeiger vom Typ meiner Ansicht also &quot;CEx07aView&quot; zu übergeben aber da bekomme ich aus der &quot;CEx07aDialog.h&quot; nur Fehlermeldungen. Mein Versuch sah folgendermassen aus.</p>
<p>class CEx07aDialog : public CDialog<br />
{<br />
private:<br />
CEx07aView* m_pView;<br />
public:<br />
CEx07aDialog(CEx07aView* pView);<br />
BOOL Create();<br />
...<br />
...<br />
Folgende Fehlermeldung:error C2143: Syntaxfehler : Fehlendes ';' vor '*'<br />
error C2501: 'CEx07aView' : Fehlende Speicherklasse oder Typbezeichner<br />
und so weiter.</p>
<p>In der &quot;CEx07aDialog.cpp&quot; habe ich dann folgendes gemacht.<br />
CEx07aDialog::CEx07aDialog(CEx07aView* pView) // nicht modaler Konstruktor<br />
{<br />
m_pView = pView;<br />
}<br />
error C2065: 'pView' : nicht deklarierter Bezeichner<br />
Was heist den 'pView' : nicht deklarierter Bezeichner.<br />
Wurde es mit CEx07aDialog(CEx07aView* pView) nicht deklariert?</p>
<p>cebion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142377</guid><dc:creator><![CDATA[cebion]]></dc:creator><pubDate>Fri, 22 Sep 2006 08:38:28 GMT</pubDate></item><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Fri, 22 Sep 2006 08:49:39 GMT]]></title><description><![CDATA[<p>Mal der Reihe nach (sollte man bei Compilermeldungen immer machen):</p>
<blockquote>
<p>Folgende Fehlermeldung:error C2143: Syntaxfehler : Fehlendes ';' vor '*'<br />
error C2501: 'CEx07aView' : Fehlende Speicherklasse oder Typbezeichner<br />
und so weiter.</p>
</blockquote>
<p>Das heißt, der kennt die Klasse nicht, vermutlich hast du den Include vergessen.<br />
Der andere sollte ein Folgefehler sein. <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>
<p>Casten geht entweder per C-Cast (Nicht so gut, weil fehleranfällig.)</p>
<pre><code class="language-cpp">CEx07aView* pView = (CEx07aView*)m_pView;
</code></pre>
<p>oder per dynamic_cast (den ich hauptsächlich nutze, weil man im Fehlerfall NULL bekommt)</p>
<pre><code class="language-cpp">CEx07aView* pView = dynamic_cast&lt;CEx07aView*&gt;(m_pView);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1142384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142384</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 22 Sep 2006 08:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Fri, 22 Sep 2006 10:49:07 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich denke mal, du hast das gleiche Problem wie 1000 andere vor dir (und ich auch)</p>
<p>Du willst eine bidirektionale Assoziation programmieren (meine UML Schulung ist schon lange lange her, hoffe, das ist so korrekt).<br />
Das zur Theorie, nun die Praxis:</p>
<p>Du hast 2 Klassen, CMyView und CMyDialog. Der Zeiger in eine Richtung, also CMyView hat Zeiger auf CMyDialog ist easy. Nur der Zeiger zurück von CMyDialog auf CMyView macht immer wieder Probleme.</p>
<p>Probiers mal so:</p>
<pre><code class="language-cpp">//Header CMyDialog.h
class CMyView;  //CMyView bekanntmachen
class CMyDialog
{
   private:
   CMyView* _pmyView;
   public:
   CMyDialog(CMyView* p);
}
</code></pre>
<pre><code class="language-cpp">//CMyDialog.cpp
#include &quot;CMyView.h&quot;
#include &quot;CMyDialog.h&quot;
CMyDialog::CMyDialog(CMyView* p)
{
  _pmyView = p;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1142441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142441</guid><dc:creator><![CDATA[electron]]></dc:creator><pubDate>Fri, 22 Sep 2006 10:49:07 GMT</pubDate></item><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Fri, 22 Sep 2006 14:36:38 GMT]]></title><description><![CDATA[<p>Hallo estartu.<br />
Ich habe das mal mit dem cast ausprobiert.<br />
Mit dem einfachen geht es. Super, super, super.<br />
Dann habe ich noch den dynamic_cast ausprobiert bekomme aber folgende Fehlermeldung<br />
: warning C4541: 'dynamic_cast' fuer polymorphen Typ 'class CView' mit /GR- verwendet; unvorhersehbares Verhalten moeglich</p>
<p>Macht aber nichts weil der einfache cast ja geht.</p>
<p>Noch mal vielen Dank.</p>
<p>Hallo electron.<br />
Auch deine Tipps funktionieren bestens.<br />
Habe nun mehrere möglichkeiten das problem zu lösen und viiiiel C++ gelernt.<br />
Also vielen Dank an euch beide.</p>
<p>cebion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142630</guid><dc:creator><![CDATA[cebion]]></dc:creator><pubDate>Fri, 22 Sep 2006 14:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kennt jamand &amp;quot;Inside Visual C++ 6&amp;quot; von Kruglinski,Shepard... on Fri, 22 Sep 2006 16:52:17 GMT]]></title><description><![CDATA[<blockquote>
<p>warning C4541: 'dynamic_cast' fuer polymorphen Typ 'class CView' mit /GR- verwendet; unvorhersehbares Verhalten moeglich</p>
</blockquote>
<p>Okay, da musst du in den Projekteinstellungen noch RTTI einschalten, dann geht das auch. <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/1142710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142710</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 22 Sep 2006 16:52:17 GMT</pubDate></item></channel></rss>