Speicherfreigabe....
-
Hi,
wie kann ich den Speicher von Propertypages wieder freigeben?
Ich erzeuge eine variable Anzahl von Pages mit lpoPages = CPropertyPages[x]; und erschaffe sie mit lpoPages[i].Construct(IDD_PAGE,ID_DUMMY);
Desweiteren werden diese dann in ein PropertySheet eingefügt mit m_lpoSheet->AddPage(lpoPages[i]); Alle nacheinander natürlich!
Im Destruktor meiner Klasse gehe ich dann folgendermaßen vor:
if(m_lpoSheet) { CPropertyPage* lpoPage = NULL; while (0 != m_lpoSheet->GetPageCount()) { lpoPage = m_lpoSheet->GetPage(0); m_lpoSheet->RemovePage(0); lpoPage->DestroyWindow(); //delete lpoPage; } delete m_lpoSheet; m_lpoSheet = NULL;
wenn ich das "delete lpoPage;" auskommentiere knallt es, lasse ich es so wie jetzt habe ich speicherlöcher....
Wer kann mir helfen???
-
Warum reicht Dir das Beispiel aus der MSDN nicht:
CPropertyPage p1, p2; CPropertySheet ps; ps.AddPage( &p1); ps.AddPage( &p2); ps.DoModaul();
Zu erweitern auf:
CPropertyPage* p = new CPropertyPage[nCount]; CPropertySheet ps; for( int i=0; i<nCount; i++) ps.AddPage( &p[i]); ps.DoModaul(); delete[] p;