游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2989|回复: 3

MFC中m_pMainWnd问题

[复制链接]

125

主题

364

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
QQ
发表于 2007-1-28 17:32:00 | 显示全部楼层 |阅读模式
   学习 MFC的时候,  看 MFC程序设计中, 这样覆写
继承自CWinApp 的InitInstance方法。


  1. BOOL CMyApp::InitInstance()
  2. {
  3.         m_pMainWnd = new CMyFrame;
  4.         m_pMainWnd->ShowWindow(m_nCmdShow);
  5.         m_pMainWnd->UpdateWindow();

  6.        
  7.         return TRUE;
  8. }
复制代码


学习的时候并没有 仔细思考m_pMainWnd,  

今天, 左思右想  既然 m_pMainWnd是在堆中创建了 CMyFrame的一个实例,
那 我这并没有 显式的 在程序结束时 delete 这片内存。
但是 这样些并没有产生内存泄露,

在调试状态 框架默认都带Debug的检测内存泄露的这段

  1. #ifdef _DEBUG
  2. #define new DEBUG_NEW
  3. #undef THIS_FILE
  4. static char THIS_FILE[] = __FILE__;
  5. #endif
复制代码


问题是, 究竟 m_pMainWnd 被如何释放掉了?
谢谢 大侠指点。(注释: 左翻右翻了 MFC的代码和头文件,还是没有找到)

17

主题

258

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2007-1-28 18:04:00 | 显示全部楼层

Re:MFC中m_pMainWnd问题

因为这个对象自始至终都只有一个,应该是程序在结束后,windows把资源直接回收回来了,所以没必要用delete了.

15

主题

83

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2007-1-29 01:56:00 | 显示全部楼层

Re: MFC中m_pMainWnd问题

shaoxiaoning: MFC中m_pMainWnd问题

   学习 MFC的时候,  看 MFC程序设计中, 这样覆写
继承自CWinApp 的InitInstance方法。

[code]
BOOL...

这个C++对象在OnNcDestroy里被delete掉了。

125

主题

364

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
QQ
 楼主| 发表于 2007-1-29 10:05:00 | 显示全部楼层

Re:MFC中m_pMainWnd问题

多谢楼上, 真的是在 PostNcDestroy(); 里删除的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表