Warum wurde mein Thread geschlossen
-
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
-
ok
:p