为什么我程序在中单击按钮退出时会发生内存泄露???
CDialogA::OnCreat()
{
   m_pDialogB  = new CDialogB ; 
}CDialogA::Destroy()
{
  if(m_pDialogB)
  delete m_pDialogB;
  m_pDialogB  =  NULL; 
}
CDialogA::OnExitButton()
{
  exit(0);
}

解决方案 »

  1.   

    CDialogA::OnExitButton()
    {
      exit(0);
    }
    并没有调用Destroy()
      

  2.   

    不要用c的函数,直接退出,这样会跳过mfc的一些默认处理过程!
    你重载了destroy函数之后,用它原来的退出方法,就可以了,不用调exit(0),比如用onok()函数!
      

  3.   

    应该是响应WM_ONDESTROY消息,在消息处理中删除对话B
      

  4.   

    CDialogA::Destroy()
    {
      if(m_pDialogB)
    m_pDialogB->Destroy();
      delete m_pDialogB;
      m_pDialogB  =  NULL; 
    }
      

  5.   

    CDialogA::OnExitButton()
    {
      OnOk();//改为这样
    }
      

  6.   

    修改为下
    CDialogA::OnCreat()
    {
       m_pDialogB  = new CDialogB ; 
    }CDialogA::Destroy()
    {
      delete m_pDialogB;
      m_pDialogB  =  NULL; 
    }
    CDialogA::OnExitButton()
    {
      OnCancel;
    }