Editfeld funzt net!
-
Moin Leute!
Habe hier ein Problem mit einen Editfeld. Es anlegen macht keine Sorgen. Aber dann möchte ich die Variable CString m_strResults zuweisen. Compiliert wird das Prog auch aber beim Ausführen schmiert es ab.
Als Fehlermeldung wird eine Zugriffsverletzung festgestellt.
Wer kann mir sagen, woran das liegt und wie man abhilfe schaffen kann?
THX Markus
-
mstank schrieb:
Habe hier ein Problem mit einen Editfeld. Es anlegen macht keine Sorgen. Aber dann möchte ich die Variable CString m_strResults zuweisen. Compiliert wird das Prog auch aber beim Ausführen schmiert es ab.
hast du ein objekt des edit feldes?
wenn ja dann geht's soCString m_strResults; mein_edit_control.GetWindowText (m_strResults);
oder als pointer
CString m_strResults; mein_edit_control->GetWindowText (m_strResults);
-
Tach net!
Das GetWindowText liest sich für mich (Anfänger) so, als wenn ich das Editfeld auslese. Aber eigendlich möchte ich da was reinschreiben und zwar den Namen einer Datei, in die geschrieben werden soll.
In einem anderen Prog klapt das auch.
CFileDialog m_ldFile(FALSE); //open Dialogbox and catch event if (m_ldFile.DoModal() == IDOK) { //get selected Filename m_sResults = m_ldFile.GetFileName(); //update Dialogbox UpdateData (FALSE); } //open or create file and write string per string include <cr> and <lf> CStdioFile datei(m_sResults, CFile::modeCreate | CFile::modeWrite); for (int i=0; i<m_txt_Array.GetSize(); i++) { datei.WriteString(m_txt_Array[i] +"\r" +"\n"); } datei.Close();
Nun habe ich ein Beispielprog. vom MSDN zum Empfang von UDP-Packeten und da tut es das nicht!
Gruß Markus
-
mstank schrieb:
Aber eigendlich möchte ich da was reinschreiben und zwar den Namen einer Datei, in die geschrieben werden soll.
ach so, umgekehrt. geht so:
mein_edit_control.SetWindowText(m_strResults);
mstank schrieb:
In einem anderen Prog klapt das auch.
das beispiel macht's aber mit 'nem CFileDialog-objekt. das ist was ganz anderes als ein einfaches edit control
-
Hi net!
Ich habe nun folgenden Code:
void CStarDustUDPDlg::OnSave() { CFileDialog m_ldFile(FALSE); CString strResults; //open Dialogbox and catch event if (m_ldFile.DoModal() == IDOK) { strResults = m_ldFile.GetFileName(); //get selected Filename m_ctrlResults.SetWindowText(m_ldFile.GetFileName()); //Update Dialogbox UpdateData(TRUE); } //m_strTeceive = _TC(""); //Anzeige aktualsieren... UpdateData(FALSE); //...und Anzeigen GetDlgItem(IDC_SAVE)->EnableWindow(FALSE); GetDlgItem(IDC_SAVE)->EnableWindow( FALSE ); //now save file like Star.DustRS232 //open or create file and write string per string include <cr> and <lf> CStdioFile datei(strResults, CFile::modeCreate | CFile::modeWrite); for (int i=0; i<m_txt_Array.GetSize(); i++) { datei.WriteString(m_txt_Array[i] +"\r" +"\n"); } datei.Close(); }
Da wird nun auch eine Datei angelegt. Soweit sogut. In die Datei kann ich noch nicht reinschreiben, kommt hoffendlich heute. Aber wenn ich das Prog beende, dann tut sich wieder ein Fehlermeldung auf. Ansonsten läuft alles. Liegt es daran, daß ich ein Objekt erst löschen muß?
Es passiert auch erst dann, wenn ich
m_ctrlResults.SetWindowText(m_ldFile.GetFileName());
einfüge.
Gruß Markus