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;
    

Anmelden zum Antworten