退出程序与内存泄漏
keyou 2001-04-19 06:15:00 我的程序结构如下:
CWinApp
CMainFrame
CChildView CFrameWnd(5个类) CDialog CSocket(2个类)
我在CDialog里调用主框架的成员函数来退出程序,即调用
CMainFrame::ExitApp()
{
PostQuitMessage(0);
delete AfxGetApp()->GetMainWnd();
}
来退出程序;但是程序要很久才能退出来.还有就是,有时虽然我执行了ExitApp();但不能彻底退出程序,出现程序驻留在机器里,用VC的Process Viewer来观察发现,我的程序依然还在!!!更糟糕的事:在Process Viewer也不能杀死这个程序!!!!?????后来我想肯定是后面那一条语句delete AfxGetApp()->GetMainWnd();作怪,但不加上的话则不执行各个类的析构函数!!!!??????出现内存泄漏.高手帮帮忙了!!!!! :)
还有一个问题就是:我用new来分配动态空间时居然也会出现错误(在KERNEL)!!!(我用了2张位图做界面大小4M左右;5个CFrameWnd、2个CSocket和CChildView类总共7k左右,还有2个数据库!!!)我想问一问大家,windows操作系统给我们提供的堆内存有多少???栈的空间又是多少!!是不是1G呢????(我机器内存64k,硬盘10G).是机顶盒.
我在CMainFrame里用CFrameWnd继承的类来做菜单窗口,这样是不是很不正确呢!!!!!!???