Heaplimit erreicht! Klassen verkleinern, aber wie?
-
Hallo!
Ich habe das Problem, das mein Programm beim Compilieren das Heaplimit erreicht. In der MSN wurde mir empfohlen, meine Klasse zu verkleinern, aber wie?
Ich habe eine Basisklasse (Dialog) von der ich alle anderen Klassen per DoModal() aufrufe. Dafür muss ich haber die Header-Dateien includieren, was meine Basisklasse mächtig aufbläht.
Beispiel
// am Anfang meiner CBasisDlg steht: #include "StatistikenDlg.h" // weiter unten in einer Function steht: CStatistikenDlg* dlg = new CStatistikenDlg; dlg->m_strUeberschrift = "Statistik über Aktivität"; dlg->m_strJahr = Buffer; dlg->m_strStatistik = "Zielgruppe"; dlg->DoModal(); delete dlg;Wie kann ich es vermeiden immer die Header-Dateien mitzuladen?
Danke!
Gruß,
Elayas
-
Ich habe das Problem, das mein Programm beim Compilieren das Heaplimit erreicht.
Bitte gib mal die genaue Fehlermeldung.
-
Hallo,
ich habe den Code jetzt ein paar Tage nicht mehr angerüht und jetzt funktioniert es!?!
Allerdings gibt mir der Compiler immer noch rätsel auf. Wenn ich das Programm in Debug-Modus compiliere, funktioniert es ohne Fehler. Wenn ich es allerdings im Release-Modus compiliere, meldet er mir in folgenden Zeilen einen Fehler:
CVFormularDlg* dlg = new CVFormularDlg; dlg->m_strJob = "UPDATE"; dlg->AdressID = GetAdressID(); // <-- hier steht der grüne Pfeil dlg->DoModal(); delete dlg;Fehler:
Versicherung3.exe!ATL::CSimpleStringT<char>::GetLength() Zeile 436 + 0x8 C++
Versicherung3.exe!ATL::CSimpleStringT<char>::SetString() Zeile 526 + 0x8 C++
Versicherung3.exe!ATL::CSimpleStringT<char>::SetString() Zeile 511 C++
Versicherung3.exe!ATL::CSimpleStringT<char>::operator=() Zeile 273 C++
Versicherung3.exe!ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator=() Zeile 912 C++
Versicherung3.exe!CVersicherung3Dlg::OnBnClickedBedit() Zeile 413 C++
-
Ich habe den Fehler gefunden.
Ich hatte eine Member-Variable nicht mehr deklariert, aber diese noch verwendet. Anscheinend hat das den Fehler verursacht, da jetzt wieder alles ohne Probleme läuft.Sorry für die Umstände.
Gruß,
Elayas