none
请问MFC做的浏览器,内存如何释放(重发) RRS feed

  • 问题

  • 蒋老大,那个问题还没解决啊?

    早上来测试了,在IE8的环境下同样是内存增加,定时关闭启动,这个方法不太可取,比如用户一直在用,哪能关闭呢?这是最后迫不得已的解决方案。

    现在关键我是想知道原因,内存无缘无故地被吃掉,到底在哪?
    有人说是创建框架那一句,但我在框架加了断点调试,走到那一步
    在这个函数void CMainFrame::PostNcDestroy() 中加了delete this;
    但发现此时的CFrameWnd hWnd=0x00000000;所以我认为子框架占用的内存被释放掉了

    -----------------不好意思,问题我再重发一遍---------------------------------

    请问MFC做的浏览器,内存如何释放

    单文档,继承CHtmlView类,在视图中打开新窗口用OnNewWindow2方法,每打开新窗口,内存都增加(第一个窗口不关闭的),然后关闭子窗口,内存能释放掉大部分,但还是增加一二M,如果经常用地话,那么真是很快会吃掉所有内存。。。郁闷
    是和IE的接口有问题吗???
    下载地址:http://d.namipan.com/d/e8e08c4ab8a344c6f6f065ccd18b45679b285c4c523f0000

    OnNewWindow2里面代码如下

    C/C++ code
    CWinApp* pApp = AfxGetApp(); POSITION pos = pApp->GetFirstDocTemplatePosition(); CDocTemplate* pDocTemplate = pApp->GetNextDocTemplate( pos ); CFrameWnd* pFrame = pDocTemplate->CreateNewFrame( GetDocument(),(CFrameWnd*)AfxGetMainWnd() ); pDocTemplate->InitialUpdateFrame( pFrame, NULL ); CMyBrowserView* pView = (CMyBrowserView*)pFrame->GetActiveView(); pView->SetRegisterAsBrowser( TRUE ); *ppDisp = pView->GetApplication(); // CHtmlView::OnNewWindow2(ppDisp, Cancel);
    2009年8月5日 1:15

答案

  • http://support.microsoft.com/default.aspx/kb/896663
    http://support.microsoft.com/kb/943510/
    http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/88c21427-e765-46e8-833d-6021ef79e0c8

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年8月5日 2:52
    版主