Warum wurde mein Thread geschlossen



  • Ach hab es überlesen, das du noch den Code postest. Sorry, hab gerade gekifft. 🙄



  • Ich weiss nicht wo der Fehler liegt weil Windows sofort das Programm beendet wenn der Button gedrückt wird und folgender Code abbläuft

    hier der Code:

    case IDC_WEITERE_EINGABEN: 
                   {
                   BOOL BoolVerw=true,BoolTag=true,BoolMonat=true,BoolJahr=true,BoolBetrag = true,BoolGruppe=true;
                   TCHAR Fehlertext[250],TextVerw[40],TextTag[40],TextMonat[40],TextJahr[40],TextBetrag[40],TextGruppe[40];
    
                   //Abfrage Betrag
                   double Betrag;
                   double BetragV = GetDlgItemInt(hwnd, IDC_BETRAG_V, 0, 0);
                   double BetragN = GetDlgItemInt(hwnd, IDC_BETRAG_N, 0, 0);
                   if ((BetragN>=0)||(BetragN<=0))
                      {                  
                      Betrag= BetragV+(BetragN/100);
                      }else if(BetragV==0)BoolBetrag=false;
                            else
                            Betrag = BetragV;
                   //Fehler abfang Betrag
                   if(Betrag==0)
                      {
                      BoolBetrag=false;
                      _stprintf(TextBetrag,TEXT("- Keine Eingabe bei Betrag\n"));
                      }                  
                   //Abfrage Verwendungszweck
                   int len = GetWindowTextLength(GetDlgItem(hwnd, IDC_VERWENDUNGSZWECK));
                   char VZweck[21];
                   GetDlgItemText(hwnd,IDC_VERWENDUNGSZWECK,VZweck,20);
    
                   if((len>=21)||(len<=0))
                   {
                     BoolVerw=FALSE;
                     _stprintf(TextVerw,TEXT("- Keine oder zulange Eingabe bei Verwendungszweck\n"));
                   }                     
                   //Abfrage Gewählte Gruppe
                   HWND hWndListBox = GetDlgItem(hwnd,IDC_GRUPPE_E);
                   Rwert= SendMessage(hWndListBox,CB_GETCURSEL,0,0); 
                   if(Rwert== CB_ERR)
                       BoolGruppe = false;
    
                   //Abfrage Datum
                   //Abfrage Tag
                   int Tag   = GetDlgItemInt(hwnd, IDC_TAG, 0, BoolTag);
                   if((Tag<=0)||(Tag>=32))
                     {
                     BoolTag=FALSE;
                     _stprintf(TextTag,TEXT("- Keine oder falsche Eingabe bei Datum (Tag)\n"));
                     }                 
                   //Abfrage Monat  
                   int Monat = GetDlgItemInt(hwnd, IDC_MONAT, 0, BoolMonat);
                   if((Monat<=0)||(Monat>=13))
                   {
                     BoolMonat=FALSE;
                     _stprintf(TextMonat,TEXT("- Keine oder falsche Eingabe bei Datum (monat)\n"));
                   }                 
                   //Abfrage Jahr
                   int Jahr = GetDlgItemInt(hwnd, IDC_JAHR, 0, BoolJahr);
                   if((Jahr<=0)||(Jahr>=2005))
                   {
                     BoolJahr=FALSE;
                     _stprintf(TextJahr,TEXT("- Keine oder falsche Eingabe bei Datum (Jahr)\n"));
                   }
    
                   if (BoolBetrag&&BoolGruppe)
                      {
    
                       _stprintf(Fehlertext,TEXT("%s /n/n Eingabe Erfolgt"),(TCHAR) TextTag);
                       MessageBox(hwnd,Fehlertext,"Fehler",MB_ICONEXCLAMATION | MB_OK);
    
                       int temp;
                       temp = Gruppen[Rwert].GetZae();
    
                       //Übergabe von Betrag in Gruppe
                       Gruppen[Rwert].grin[temp].SetBetrag(Betrag);
    
                       //Übergabe von Verwengunszweck in Gruppe
                       if(BoolVerw)Gruppen[Rwert].grin[temp].SetVZweck(VZweck);
                       //Übergabe von Datum tag in Gruppe
                       if(BoolTag)Gruppen[Rwert].grin[temp].SetTag(Tag);
                       //Übergabe von Datum Monat in Gruppe
                       if(BoolMonat)Gruppen[Rwert].grin[temp].SetMonat(Monat);
                       //Übergabe von Datum Jahr in Gruppe
                       if(BoolJahr)Gruppen[Rwert].grin[temp].SetJahr(Jahr);
    
                       Gruppen[Rwert].SetZae(temp++);
    
                       SetDlgItemText(hwnd, IDC_BETRAG_V, "");
                       SetDlgItemText(hwnd, IDC_BETRAG_N, "");
                       SetDlgItemText(hwnd, IDC_VERWENDUNGSZWECK, "- Keine Angabe -");
                       SetDlgItemText(hwnd, IDC_TAG, "");
                       SetDlgItemText(hwnd, IDC_MONAT, "");
                       SetDlgItemText(hwnd, IDC_JAHR, "");
    
                      }else _stprintf(Fehlertext,TEXT("%s /n/nEingabe nicht Erfolgt"),(TCHAR) TextTag);
    
                   MessageBox(hwnd,Fehlertext,"Fehler",MB_ICONEXCLAMATION | MB_OK);
    
                   return 0;
                   }
                   break;
    


  • Grenz doch mal den Fehler genauer ein. Du kannst doch Sachen aus dem Code rausnehmen und gucken obs dann immer noch abstürzt!



  • ich vermute das das hier den Fehler verursacht weiss es aber nicht weil nachdem ich hier was geändert habe läuft es nicht mehr kann es mir aber eben nicht erklären

    //Abfrage Gewählte Gruppe
                   HWND hWndListBox = GetDlgItem(hwnd,IDC_GRUPPE_E);
                   Rwert= SendMessage(hWndListBox,CB_GETCURSEL,0,0); 
                   if(Rwert== CB_ERR)
                       BoolGruppe = false;
    

    aber ich glaube das der Fehler dann hier entsteht.

    if (BoolBetrag&&BoolGruppe)
                      {
                       //Kopieren der Fehlermeldungen
                       _stprintf(Fehlertext,TEXT("%s /n/n Eingabe Erfolgt"),(TCHAR) TextTag);
                       //Ausgabe des Fehlers
                       MessageBox(hwnd,Fehlertext,"Fehler",MB_ICONEXCLAMATION | MB_OK);
    
                        int temp;
                       temp = Gruppen[Rwert].GetZae();
    
                       //Übergabe von Betrag in Gruppe
                       Gruppen[Rwert].grin[temp].SetBetrag(Betrag);
    
                       //Übergabe von Verwengunszweck in Gruppe
                       if(BoolVerw)Gruppen[Rwert].grin[temp].SetVZweck(VZweck);
                       //Übergabe von Datum tag in Gruppe
                       if(BoolTag)Gruppen[Rwert].grin[temp].SetTag(Tag);
                       //Übergabe von Datum Monat in Gruppe
                       if(BoolMonat)Gruppen[Rwert].grin[temp].SetMonat(Monat);
                       //Übergabe von Datum Jahr in Gruppe
                       if(BoolJahr)Gruppen[Rwert].grin[temp].SetJahr(Jahr);
    
                       Gruppen[Rwert].SetZae(temp++);
                       //Neusetzen der Eingabefelder
                       SetDlgItemText(hwnd, IDC_BETRAG_V, "");
                       SetDlgItemText(hwnd, IDC_BETRAG_N, "");
                       SetDlgItemText(hwnd, IDC_VERWENDUNGSZWECK, "- Keine Angabe -");
                       SetDlgItemText(hwnd, IDC_TAG, "");
                       SetDlgItemText(hwnd, IDC_MONAT, "");
                       SetDlgItemText(hwnd, IDC_JAHR, "");
    
                      }else _stprintf(Fehlertext,TEXT("%s /n/nEingabe nicht Erfolgt"),(TCHAR) TextTag);
    
                   MessageBox(hwnd,Fehlertext,"Fehler",MB_ICONEXCLAMATION | MB_OK);
    


  • Debugger benutzen...

    cya 🙂



  • Rwert= SendMessage(hWndListBox,CB_GETCURSEL,0,0);
    if(Rwert== CB_ERR)

    kann ich das wirklich so machen



  • Ja. 🙂 Wieso nicht?



  • weiss nicht deswegen frag ich ja 😃



  • also ich hab jetzt den Fehler Lokalisiert krieg ihn aber trotzdem nicht beseitigt undzwar sofern die if- Bedingung anfangt stüzt das Prog ab ich bin am verzweifeln kann mir jmd. weiterhelfen.

    if (BoolBetrag&&BoolGruppe)
                      {
                       //Kopieren der Fehlermeldungen
                       _stprintf(Fehlertext,TEXT("%s /n/n Eingabe Erfolgt"),(TCHAR) TextTag);
                       //Ausgabe des Fehlers
                       MessageBox(hwnd,Fehlertext,"Fehler",MB_ICONEXCLAMATION | MB_OK);
    


  • Mach mal den TCHAR-Cast weg.

    cya 🙂



  • ja aber das bringt doch nicht viel sofern di if Anweisung kommt springt er komplet raus.



  • Jetzt probier's doch einfach mal aus...

    cya 🙂



  • ok ich muss ja jetzt sowieso den Petzhold vom Dachboden(mein Zimmer) holen



  • kannst du mir dann erklären warum es dann aufeinmal fuktioniert wenn ich TCHAR rausnehme (ausser Formatierungs Fehler)



  • Nein, aber warum hast du nicht gleich auf mich gehört ;)?

    cya 🙂



  • tschuldigung



  • Macht nix :).

    cya 🙂



  • weiss ich doch



  • smalltalk im winapi forum ist so weit wie möglich zu unterdrücken. ergeben sich nur troll-beiträge raus wie z.B. mosta hör auf zu kiffen und sowas 🙄



  • och ich wollte blos das letzte wort habe mehr nicht


Anmelden zum Antworten