<?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[Bei CDialog::OnInitDialog(); Variablen deklarieren?]]></title><description><![CDATA[<p>Guten Morgen! Ich hab da ein kleines Problem, ist warscheinlich ziemlich simpel, aber ich kann's mir nicht erklären...</p>
<p>Ich habe versucht bei CDialog::OnInitDialog() zwei Variablen zu deklarieren, in die ich später ein paar Werte &quot;auslagern&quot; möchte um damit zu rechen.<br />
Wenn ich das ganze auf einen Button lege (z.B. void CDialogDlg::OnButton1())funktioniert alles wunderbar!<br />
Nur soll der User nicht immer erst irgendwo drauf drücken müssen, nur damit das Programm so funktioniert wie's soll... <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="😃"
    /><br />
Deswegen wollte ich, dass es gleich bei Programmstart passiert...</p>
<pre><code class="language-cpp">{
CDialog::OnInitDialog();

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);

	// ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen

	double memMAIN_IN;
	double memMAIN_OUT = NULL;

	return TRUE;
}
</code></pre>
<p>Kompilierung läuft...<br />
CDialogDlg.cpp<br />
DialogDlg.cpp(66) : warning C4101: 'memMAIN_IN' : Unreferenzierte lokale Variable<br />
DialogDlg.cpp(120) : error C2065: 'memMAIN_IN' : nichtdeklarierter Bezeichner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> // Heißt wohl er ignoriert das an dieser Stelle einfach... <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="😕"
    /><br />
DialogDlg.cpp(120) : warning C4244: '=' : Konvertierung von 'double' in 'int', moeglicher Datenverlust<br />
DialogDlg.cpp(122) : error C2065: 'memMAIN_OUT' : nichtdeklarierter Bezeichner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> // ^^ Das gleiche nochmal...<br />
Fehler beim Ausführen von cl.exe.</p>
<p>Ich &quot;arbeite&quot; erst seit zwei Wochen mit C++, weil ich das jetzt in der Ausbildung mache.<br />
Bin also totaler newbie! Ich hab zwar schon ein paar C++ Bücher gelesen, aber leider reicht mein Wissen nicht aus um mir das zu erklären. <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="😕"
    /><br />
Vielleicht kann mir ja mal jemand erleutern warum das mit den Variablen so nicht bei OnInit möglich ist... Wäre toll! <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 />
Und ein Vorschlag was alternativ möglich wäre (außer nem Button für den User <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="🙄"
    /> ), bzw. wie man das hier richtig macht, wäre natürlich noch viel toller! THX!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/46807/bei-cdialog-oninitdialog-variablen-deklarieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 05:20:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/46807.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Aug 2003 22:21:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bei CDialog::OnInitDialog(); Variablen deklarieren? on Fri, 22 Aug 2003 22:21:30 GMT]]></title><description><![CDATA[<p>Guten Morgen! Ich hab da ein kleines Problem, ist warscheinlich ziemlich simpel, aber ich kann's mir nicht erklären...</p>
<p>Ich habe versucht bei CDialog::OnInitDialog() zwei Variablen zu deklarieren, in die ich später ein paar Werte &quot;auslagern&quot; möchte um damit zu rechen.<br />
Wenn ich das ganze auf einen Button lege (z.B. void CDialogDlg::OnButton1())funktioniert alles wunderbar!<br />
Nur soll der User nicht immer erst irgendwo drauf drücken müssen, nur damit das Programm so funktioniert wie's soll... <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="😃"
    /><br />
Deswegen wollte ich, dass es gleich bei Programmstart passiert...</p>
<pre><code class="language-cpp">{
CDialog::OnInitDialog();

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);

	// ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen

	double memMAIN_IN;
	double memMAIN_OUT = NULL;

	return TRUE;
}
</code></pre>
<p>Kompilierung läuft...<br />
CDialogDlg.cpp<br />
DialogDlg.cpp(66) : warning C4101: 'memMAIN_IN' : Unreferenzierte lokale Variable<br />
DialogDlg.cpp(120) : error C2065: 'memMAIN_IN' : nichtdeklarierter Bezeichner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> // Heißt wohl er ignoriert das an dieser Stelle einfach... <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="😕"
    /><br />
DialogDlg.cpp(120) : warning C4244: '=' : Konvertierung von 'double' in 'int', moeglicher Datenverlust<br />
DialogDlg.cpp(122) : error C2065: 'memMAIN_OUT' : nichtdeklarierter Bezeichner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> // ^^ Das gleiche nochmal...<br />
Fehler beim Ausführen von cl.exe.</p>
<p>Ich &quot;arbeite&quot; erst seit zwei Wochen mit C++, weil ich das jetzt in der Ausbildung mache.<br />
Bin also totaler newbie! Ich hab zwar schon ein paar C++ Bücher gelesen, aber leider reicht mein Wissen nicht aus um mir das zu erklären. <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="😕"
    /><br />
Vielleicht kann mir ja mal jemand erleutern warum das mit den Variablen so nicht bei OnInit möglich ist... Wäre toll! <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 />
Und ein Vorschlag was alternativ möglich wäre (außer nem Button für den User <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="🙄"
    /> ), bzw. wie man das hier richtig macht, wäre natürlich noch viel toller! THX!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/338904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/338904</guid><dc:creator><![CDATA[BLACK LOOK]]></dc:creator><pubDate>Fri, 22 Aug 2003 22:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to Bei CDialog::OnInitDialog(); Variablen deklarieren? on Fri, 22 Aug 2003 22:49:02 GMT]]></title><description><![CDATA[<p>Die beiden Variablen, die du da anlegst, sind Funktionslokal. Das heißt, sie existieren nur in der Funktion (bzw. Methode) OnInitDialog. In einer für einen Button zugewiesene Methode zum Beispiel sind sie nicht mehr gültig.</p>
<p>Dazu müssen die Variablen nicht in OnInitDialog deklariert, sondern für die ganze Dialog-Klasse als Membervariablen deklariert werden. Das geht am einfachsen, indem du in der Klassenansicht mit rechts auf den Klassennamen (normalerweise CMyDlg) klickst und &quot;Member-Variable Hinzufügen wählst&quot;. Als Zugriffsberechtigung solltest du private oder protected wählen und wenn die Variable von außen verändert werden soll, Get/Set Methoden implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/338906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/338906</guid><dc:creator><![CDATA[Phobos]]></dc:creator><pubDate>Fri, 22 Aug 2003 22:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Bei CDialog::OnInitDialog(); Variablen deklarieren? on Fri, 22 Aug 2003 23:47:01 GMT]]></title><description><![CDATA[<p>Okay, danke! Das hat funktioniert! Ich dachte es ist egal wo ich die deklariere und das die immer im gesamten Dialog verfügbar wären...</p>
<p>Nun ist hier aber noch was merkwürdiges...</p>
<p>Und zwar...</p>
<pre><code class="language-cpp">/*
    angenommen  m_EDIT_IN  sei &quot;10&quot; und  memMAIN_OUT  sei NULL,
    dann müsste nach meiner Rechnung am Ende  memMAIN_OUT  auch 10 sein...
*/

void CCONVERTERDlg::OnButtonAdd()
{
     UpdateData(TRUE)

     memMAIN_IN = atof(m_EDIT_IN);  //  Neuen Wert aus Eingabefeld holen
     memMAIN_OUT = memMAIN_OUT + memMAIN_IN;  // Wert zu memMEIN_OUT addieren

     m_DEBUG_IN = memMAIN_IN;  // Hier wird logischerweise 10 ausgegeben...
     m_DEBUG_OUT = memMAIN_OUT;  // Aber hier kommt -9.25596313493178e+061 raus!?!  :confused:

/*
    Hat mein Computer in der Grundschule nicht aufgepasst?
    Ich denke nicht...  ;) Also warum zer****** der hier den Wert?
    0 + 10 = 10 und nicht -9.25596313493178e+061...
*/

UpdateData(FALSE);
}
</code></pre>
<p>Das ist jetzt nicht wirklich ein Problem, wenn ich memMAIN_OUT bei OnInit auf NULL setze funktioniert es! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /><br />
Dennoch muss ich sagen das mich das ziemlich verwirrt...<br />
Hab ich hier wieder irgendwelche Regeln nicht beachtet?</p>
<p>Ich hatte ja vermutet das es mit der Konvertierung von ASCII to float zusammen hängt,<br />
aber dann müsste der Wert ja bei memMAIN_IN auch schon so seltsam sein...</p>
<p>Ach so, m_DEBUG_IN und m_DEBUG_OUT sind beide vom Typ double!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/338921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/338921</guid><dc:creator><![CDATA[BLACK LOOK]]></dc:creator><pubDate>Fri, 22 Aug 2003 23:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bei CDialog::OnInitDialog(); Variablen deklarieren? on Sat, 23 Aug 2003 07:16:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>nachdem du die beiden Variablen in der Dialogklasse deklrariert hast, weißt der Compiler Speicher für sie zu. Ohne die Variablen vorher (zum Beispiel in OnInitDialog) mit einem Wert zu versehen, erhalten sie eben den Wert, der an dieser Stelle bereits im Speicher war. Und bei dir war das eben wohl -9.25596313493178e+061.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/338946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/338946</guid><dc:creator><![CDATA[Phobos]]></dc:creator><pubDate>Sat, 23 Aug 2003 07:16:30 GMT</pubDate></item></channel></rss>