Grundlagenproblem
-
Hi,
ich habe ein Verständnisproblem, dass ich nicht alleine lösen kann.
// CHAT_SOCKET.cpp : Defines the class behaviors for the application. #include "stdafx.h" #include "CHAT_SOCKET.h" #include "CHAT_Dlg.h" //................. void CCHAT_App::Send(SOCKET) { for(;;) { CCHAT_Dlg::GetDlgItemText(IDC_Input, m_input); //ERROR (siehe unten) // Editbox einlesen // dann in Variable speichern und an send() übergeben } //for
Die Funktion Send(SOCKET) ist in CCHAT_App.h deklariert.
Wenn ich nun einen wert aus der editbox einlesen möchte erhalte ich den fehler
error C2065: 'm_input' : undeclared identifier.
FRAGE:Was muss ich tun, um den Wert einlesen zu können????Vielen dank!!
wenn ihr mehr infos benötigt dann sagts mir einfach
DANKE!!
-
Hmm, "undeclared identifier" bedeutet eigentlich das die Variable "m_input" nicht existiert... Kontollier mal das EditFeld nach dieser Variable, wahrscheinlich hast du 'n Rechtschreibfehler oder so gemacht (Bsp. m_imput)
-
habe ich getan. das geht immer noch nicht und es lag auch kein tippfehler vor
-
Wie und wo hast du m_input angelegt? In CCHAT_App oder in CCHAT_Dlg? Ich schätze mal du hast die Variable in CCHAT_Dlg angelegt und versuchst von CHAT_App aus drauf zuzugreifen.
Ausserdem brauchst du afaik für GetDlgItemText eine Instanz auf eine von CWnd abgeleitetes Objekt, da die Funktion nicht static ist.
Ach nochwas, wenn du eine Membervariable mit dem Control verknüpfst, brauchst du kein GetDlgItemText machen - einfach UpdateData(true) und dann steht der Inhalt schon in m_input drin
funktioniert natürlich bei dir nur in CHAT_Dlg.
-
Du kannst das so nicht machen:
CCHAT_Dlg::GetDlgItemText(IDC_Input, m_input);
denn Du brauchst ein Objekt. Du kannst m_pMainWnd benutzen:
m_pMainWnd->GetDlgItemText(IDC_Input, m_input);
vorausgesetzt m_input ist nicht in der Dlg, sondern in der App-Klasse deklariert.
Oder halt so:CString sInput; m_pMainWnd->GetDlgItemText(IDC_Input, sInput);