Compiler-Fehler bei if-Anweisung



  • Liebe Gemeinde,
    was ist hier falsch?

    LRESULT CALLBACK CheckEditProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    	char chk_pswd[9];
       int chk_numb = 0;
    
       switch (uMsg)
       {
    
       	case WM_INITDIALOG:
          	SetDlgItemText(hDlg, IDC_CONTROLEDIT1, "password");
             SetDlgItemInt (hDlg, IDC_CONTROLEDIT2, 12345, TRUE);
             break;
    
          case WM_COMMAND:
          	switch (LOWORD (wParam))
             {
             	BOOL btran;
                case IDOK: 
    
                   GetDlgItemText (hDlg, IDC_CONTROLEDIT1, chk_pswd, sizeof(chk_pswd)-1);
    
                   chk_numb = GetDlgItemInt (hDlg, IDC_CONTROLEDIT2, &btran, TRUE);
    
                   if ((strcmp(chk_pswd, PASSWORD) == 0) && (chk_numb == NUMMER))//Hier tritt der Fehler auf, s. u.
                   {
                   	MessageBox(hDlg, "Login erfolgreich", "Willkommen", MB_OK);
                   }
                   else
                   	MessageBox(hDlg, "Zugriff verweigert", "Passwort falsch", MB_OK);
    
                   EndDialog(hDlg, IDOK);
                   break;
                case IDCANCEL:
                EndDialog(hDlg, IDCANCEL);
                break;
             }
          break;
          default:
          	return (FALSE);
       }
    	return (TRUE);
    }
    

    Wie man sieht, versuche ich ein Programm mit Dialogboxen zu schreiben. Aber bei der if-Anweisung gibt mir der Compiler (Borland C++) die Fehlermeldung

    ) expected//gemeint ist die schließende Klammer
    If statement missing )
    expression syntax
    

    Ich kann mir das nicht erklären, weil ich die Klammern und Semikolons x-mal durchgezählt habe.
    Wer hilft mir weiter?



  • Fehler findet man durch minimierung auf das nötigste.



  • Elektronix schrieb:

    Ich kann mir das nicht erklären, weil ich die Klammern und Semikolons x-mal durchgezählt habe.

    Ich vermute da ein überflüssiges Semikolon bei der Definedirektive für PASSWORD oder NUMMER.



  • MFK schrieb:

    Ich vermute da ein überflüssiges Semikolon bei der Definedirektive für PASSWORD oder NUMMER.

    Wow, Du bist klasse! Woher hast Du das gewußt? 👍 💡
    Danke vielmals!


Anmelden zum Antworten