Passwort eingeben
-
Ganz geil finde ich
Hinweiß
PISA :schland:
-
Sag mir welche Stelle du nicht verstehst... ist eigentlich rel. einfach:
void CMyDialog::OnOK(void)CMyDialog ist halt die Klasse von deinem Dialog... kann natürlich auch anders heißen

OnOK ist die Memberfunktion der Klasse, die beim klicken auf den Button(in diesem Fall IDOK) ausgelöst wird...CWnd* pwndPW = GetDlgItem(IDC_MYEDITCTRL);Wir holen uns mit der CDialog Funktion GetDlgItem einen Pointer auf unser Password Edit Control... (IDC_MYEDITCTRL muss natürlich durch die ID deines Controls ersetzt werden)...
CString strPW; pwndPW->GetWindowText(strPW);Wir legen die lokale Variable strPW an und holen dann mit der CWnd Funktion GetWindowText uns den Text des Password Controls in unsere neue lokale Variable.
if (strcmp(strPW.GetBuffer(), _T("MyPassword")) == 0) MessageBox("Das Passwort ist richtig!", "Hinweiß", MB_OK | MB_ICONINFORMATION); else MessageBox("Das Passwort ist leider FALSCH!", "Fehler", MB_OK | MB_ICONERROR);Wir vergleichen mit strcmp das was in strPW steht mit dem von uns definierten Password... in dem Fall "MyPassword"(ohne ") ... wenn beim Vergleich 0 rauskommt sind die Strings identisch, andernfall nicht... also gucken wir in der if obs gleich 0 ist... wnen ja zeigen wir die MessageBox an, in der steht dass das PW richtig ist, andernfalls, dass das PW falsch ist...
Noch Fragen?
-
hallo!
mein code:void CTabCtrlDlg::OnChangeEdit2() { CWnd* pwndPW = GetDlgItem(IDC_BUTTON33); CString strPW; pwndPW->GetWindowText(strPW); if (strcmp(strPW.GetBuffer(), _T("MyPassword")) == 1234) MessageBox("Das Passwort ist richtig!", "Hinweis", MB_OK | MB_ICONINFORMATION); else MessageBox("Das Passwort ist leider FALSCH!", "Fehler", MB_OK | MB_ICONERROR); }bekomme jetzt den Fehler:
H:\CPLUS\MFC_KURSE\EIGENE\TABCTRL\TabCtrlDlg.cpp(734) : error C2660: 'GetBuffer' : Funktion akzeptiert keine 0 Parameter
-
dann mach aus
strPW.GetBuffer()folgendes:
strPW.GetBuffer(strPW.GetLenght())
-
leider kommen andere fehler!
das ist der geänderte code:if (strcmp(strPW.GetBuffer(strPW.GetLenght()), _T("MyPassword")) == 1234)fehlermeldung:
in AFX.h:
C:\Programme\Microsoft Visual Studio\VC98\MFC\INCLUDE\afx.h(368) : Siehe Deklaration von 'CString'
in dlg:
H:\CPLUS\MFC_KURSE\EIGENE\TABCTRL\TabCtrlDlg.cpp(734) : error C2039: 'GetLenght' : Ist kein Element von 'CString'
-
oldi schrieb:
if (strcmp(strPW.GetBuffer(strPW.GetLenght()), _T("MyPassword")) == 1234)Sollte das wirklich gehen? Es soll doch geprüft werden ob das Passwd richtig ist oder nicht? Also ob die Eingabe gleich dem Passwort ist, also sollte auf == 0 geprüft werden.
MSDN Auszug: Return Value The return value for each of these functions indicates the lexicographic relation of string1 to string2. Value Relationship of string1 to string2 < 0 string1 less than string2 0 string1 identical to string2 > 0 string1 greater than string2
-
Jop... wie in meinem Code auch richtig zu lesen ist

Tjo... also... Platform SDk Updaten würde ich mal vorschlagen... denn:
CString::GetLenght ist selbe in der 98er MFC schon drin
Weiß grad net welche Version das ist...
-
auch das bringt gleichen fehler:
if (strcmp(strPW.GetBuffer(strPW.GetLenght()), _T("MyPassword")) == 0)
-
Hmm...
1. Lad dir das aktuelle Platform SDK herunter
2. Installier mal den 2003er Compiler in deine IDE... damit kannst de auch MFC Anwendungen erstellen... hast aber wenigstens nen halbwegs aktuellen Stand
-
danke, mache ich