Problem bei ComboBox-AddString Funktion
-
Zur Info: Ich habe den einfallslosen Titel "Hilfe..." angepasst.
-
ja aber meine strings sind in einer andere Dialog Klasse in Listbox gespeichert. die will ich in View Klasse benutzen
-
CEdit *pEntry = static_cast<CEdit*>(GetDlgItem(IDC_NEWENTRY)); CString CEntryText; pEntry->GetWindowText(CEntryText); // und zur Listbox hinzufuegen m_ComboBox.AddString(CEntryText);
ich habe es so probiert aber ich bekomme ein Problem bericht
-
steffan49 schrieb:
CEdit *pEntry = static_cast<CEdit*>(GetDlgItem(IDC_NEWENTRY)); CString CEntryText; pEntry->GetWindowText(CEntryText); // und zur Listbox hinzufuegen m_ComboBox.AddString(CEntryText);
ich habe es so probiert aber ich bekomme ein Problem bericht
und welchen, soll das jetzt jemand erraten? Was geht schief, oder was ist dein Problem?
-
man kann es kompilieren aber wenn man das Programm ausführen möchte dann bekomme ich so ne meldung " statistik.exe hat ein Problem festgestelt und muss beendet werden. "
bericht beinhaltet folgende daten
AppName: statistik.exe AppVer: 1.0.0.1 ModName: mfc42d.dll
ModVer: 6.0.9782.0 Offset: 000305eaDas ist glaub ich ein speicherfehler und ich weiß nicht was ich im Code falsch mache
-
PC: ich habe im Debbug modus angeschaut, das Problem tritt bei der
pEntry->GetWindowText(CEntryText);
wenn man das auskommentiert, bekommt man kein Unbehandelte ausnahme.. aber dann tut das nicht was ich will
-
Dann ist wohl pEntry NULL.
Schau dir den Pointer beim Debuggen mal genauer an.Kann es sein, dass es das CEdit zum Zeitpunkt des Aufrufs von GetWindowText noch nicht gibt ?
Also noch nicht erstellt wurde ?
-
steffan49 schrieb:
Das ist glaub ich ein speicherfehler und ich weiß nicht was ich im Code falsch mache
Ganz einfach, du lässt dir einen Zeiger geben und Prüfst den noch nicht einmal auf Gültigkeit, was ja nun das mindeste ist.
-
ach , wie dennn??? hab nich kapiert..?
-
na vielleicht so:
CEdit *pEntry = static_cast<CEdit*>(GetDlgItem(IDC_NEWENTRY)); if(pEntry) { CString CEntryText; pEntry->GetWindowText(CEntryText); // und zur Listbox hinzufuegen m_ComboBox.AddString(CEntryText); }
vielleicht solltest du dich mit den C++ Grundlagen beschäftigen und nicht unbedingt mit MFC
-
Noch einfacher ist:
CString CEntryText; GetDlgItemText(IDC_NEWENTRY,CEntryText); // und zur Listbox hinzufuegen m_ComboBox.AddString(CEntryText);
BTW: Du solltest Dich mal entscheiden wie Du Deine Variablen nennst...
CEntryText ist irreführend...