xcvbm Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 Wenn ich in meinen Dialog eine RichEdit Box einfüge läuft das Programm nicht mehr, auch wenn ich dieser Box gar nichts zu tun gebe. Nehme ich das Teil wieder raus läuft es wieder. Woran liegt denn das? Es kommen diese Fehlermeldungen: "ntdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\kernel32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. Geladene Symbole für "C:\WINDOWS\system32\MFC42D.DLL" Geladene Symbole für "C:\WINDOWS\system32\MSVCRTD.DLL" "C:\WINDOWS\system32\gdi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\user32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\advapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\rpcrt4.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. Geladene Symbole für "C:\WINDOWS\system32\MFCO42D.DLL" "C:\WINDOWS\system32\mfc42loc.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\comctl32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\uxtheme.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\msvcrt.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\MSCTF.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. Thread 0x788 wurde mit Code 0 (0x0) beendet. Das Programm "C:\Programme\Microsoft Visual Studio\MyProjects\container\Debug\container.exe" wurde mit Code 0 (0x0) beendet. Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 Versuchs doch mal mit nem AfxInitRichEdit() in der InitInstance() deiner Anwendung. Goos Zitieren
xcvbm Geschrieben 4. Oktober 2002 Autor Geschrieben 4. Oktober 2002 das bringt es auch leider auch nicht, ich habe es in den OnInitDialog reingetan. Der Verlauf des Problems hat sich nicht geändert. Mein Dialog taucht für n Bruchteil einer Sekunde auf dem Bildschirm auf, und dann ist er auch schon wieder im C++ Programm. Nehme ich das RichEdit raus läuft es normal. Krank... Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 Du sollst das ja auch nicht in den OnInitDialog() reinschreiben!!! ...ich hab doch gesagt ins InitInstance().......und auch dort bitte moeglichst an den anfang. Alles andere waer zu spaet ...und wenn du dein RichEdit nicht bei zeiten initialisierst, dann laeufts halt nicht...so einfach ist das Goos Zitieren
xcvbm Geschrieben 4. Oktober 2002 Autor Geschrieben 4. Oktober 2002 Oops, da war ich schneller am Lesen als beim Denken, Danke für den Hinweis. Jetzt läuft es. Zitieren
xcvbm Geschrieben 4. Oktober 2002 Autor Geschrieben 4. Oktober 2002 und doch noch ein Problem: Ich weise dem RichEdit eine CString Variable zu, die ich in einer for Schleife fülle, doch sobald er das erste mal in die Variable schreiben will stürzt er mit einer Access Violation ab. Das erste Wort steht in diesem Moment schon in der Variable drin, kommt er mit der Schleife nicht klar? oder muss ich in der InitInstance die Variable mit übergeben? Tut mir leid für diese vielleicht dummen Fragen, bin halt ein dummer Anfänger Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 Kannst dich dazu vielleicht noch n bissl naeher aeussern oder das entsprechende stueckl vom Code posten?.....So auf Anhieb kann ich sonst grad nix zu sagen. Goos Zitieren
xcvbm Geschrieben 4. Oktober 2002 Autor Geschrieben 4. Oktober 2002 Ich führe das Programm im Debug Modus aus, ich habe mehrere Schleifen, nach der ersten for Schleife stürzt er ab: ______________________________________________________________________________________________________________________________________________________ CODE: { H=0; B=0; T=0; for(H;H<5;H++) //Im Array Bool nContainer[5][5][5] alles auf false setzen { nContainerHBT[H][T]=false; for(B;B<5; B++) { nContainerHBT[H][T]=false; for(T;T<5; T++) { nContainerHBT[H][T]=false; } } } // genau hier ist der Absturz // H=0; B=0; T=0; m_EingabeH=3; m_EingabeB=3; m_EingabeT=3; //UpdateData(true); for(H;H<m_EingabeH;H++) //je nach Eingabe das Array auf true setzen { nContainerHBT[H][T]=true; for(B;B<m_EingabeB;B++) { nContainerHBT[H][T]=true; for(T;T<m_EingabeT;T++) { nContainerHBT[H][T]=true; } } } H=0; B=0; T=0; for(H;H<5;H++) //Array auf true / false auslesen { if (H<m_EingabeH) //if(nContainerHBT[H][T]=true) { test=test +" ;Ja"; //test+=" ;Ja"; } else test=test + " ;Nein"; //test+=" ;Nein"; for(B;B<5;B++) { if(B<m_EingabeB) //if(nContainerHBT[H][T]=true) { test=test +" ;Ja"; //test+=" ;Ja"; } else test=test + " ;Nein"; //test+=" ;Nein"; for(T;T<5;T++) { if(T<m_EingabeT) //if(nContainerHBT[H][T]=true) { test=test +" ;Ja"; //test+=" ;Ja"; } else test=test + " ;Nein"; //test+=" ;Nein"; } } } // UpdateData(true); } :CODE _____________________________________________________________________________________________________________________________________________________ Der Debugger zeigt mir die Messagebox " Unbehandelte Ausnahme in container.exe (MFC42.DLL): 0xCD0000005: Access Violation" und springt dann an diese Stelle: ______________________________________________________________________________________________________________________________________________________ CODE: CString AFXAPI operator+(const CString& string, LPCTSTR lpsz) { ASSERT(lpsz == NULL || AfxIsValidString(lpsz)); CString s; s.ConcatCopy(string.GetData()->nDataLength, string.m_pchData, CString::SafeStrlen(lpsz), lpsz); return s; } :CODE ______________________________________________________________________________________________________________________________________________________ Ich hoffe du hast dazu ne Idee... Danke für deine Bemühungen Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 Original geschrieben von Christoph F. und doch noch ein Problem: Ich weise dem RichEdit eine CString Variable zu, die ich in einer for Schleife fülle, doch sobald er das erste mal in die Variable schreiben will stürzt er mit einer Access Violation ab. Schulligung, aber wo ist bitte bei dem Code den du gepostet hast der Bezug zum RichEdit? .....oder hat das soweit noch nichts konkretes damit zutun? Ach und schau doch bitte mal mit dem Debugger, wo es genau abstürzt....dort wo du es hingeschrieben hast kanns schlecht sein, da in der Zeile ja gar kein Code steht Dummerweise sollte es aber zumindest bis zu der Stelle an der du das mit dem Absturz geschrieben hast problemlos durchlaufen. Irgendwie vermiss ich da aber auch noch irgendwo die Deklaration von H,B,T und nContainerHBT.....oder sind das schlecht benannte Members? Goos Zitieren
xcvbm Geschrieben 4. Oktober 2002 Autor Geschrieben 4. Oktober 2002 Hier erstelle ich die Variablen, sind wohl schlecht benannt. ... ___________________________________________________________________________ CODE: class CContainerDlg : public CDialog { // Konstruktion public: int B; int T; int H; int m_EingabeB; int m_EingabeT; int m_EingabeH; //char lcrtestaus; //char lcausgabe; bool nContainerHBT[5][5][5]; CContainerDlg(CWnd* pParent = NULL); // Standard-Konstruktor // Dialogfelddaten //{{AFX_DATA(CContainerDlg) enum { IDD = IDD_CONTAINER_DIALOG }; CString test; //Hier die Variable test, fürs RichEdit //}}AFX_DATA // Vom Klassenassistenten generierte Überladungen virtueller Funktionen //{{AFX_VIRTUAL(CContainerDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung //}}AFX_VIRTUAL :CODE ___________________________________________________________________________ Das Programm stürzt nach der Schleife ab, der gelbe Pfeil steht genau auf "B=0;", ich denke aber das er weiter unten, am Anfang der nächsten Schleife abstürzt und nur den gelben Pfeil nicht aktualisiert, oder? Zitieren
xcvbm Geschrieben 4. Oktober 2002 Autor Geschrieben 4. Oktober 2002 zum gelben Pfeil: der steht schon vorm Absturz da, dann drück ich noch einmal F5, dann kommt die Fehlermeldung. Christoph Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 Zuerst wuerd ich an deiner Stelle schonmal die Schleifen aendern, da du in deinen Schleifen wohl nicht alle Elemente erwischt. Die erste wuerd dann in etwa so aussehen: for(H;H<5;H++) //Im Array Bool nContainer[5][5][5] alles auf false setzen { for(B = 0 ;B<5; B++) { for(T = 0;T<5; T++) { nContainerHBT[H][B][T]=false; } } } [/PHP] Goos Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 ...ach und lass mich raten.....test is dein Stringmember vom RichEdit, oder? Zitieren
Goos Geschrieben 4. Oktober 2002 Geschrieben 4. Oktober 2002 das solltes dann besser anders versuchen...ich wuerd dir dazu raten ein Control Member zu erstellen. Dann kannst das etwa in folgender Art und Weise machen: m_rich waer Control Member von deinem Rich Edit CString test m_rich.GetWindowText(test); test = test +" ; bla"; m_rich.SetWindowText(test); [/PHP] Goos Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.