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


Anmelden zum Antworten