关于VC中的内存泄露检测功能

这几天在.Net中写MFC程序,DEBUG时退出对话框后在输出窗口有下面的一段信息

Detected memory leaks!
Dumping objects ->
g:/playfinalsoundusb2/2dialogdlg.cpp(144) : {94} client block at 0x00035B80, subtype c0, 264 bytes long.
a CTextPlayer object at $00035B80, 264 bytes long
g:/playfinalsoundusb2/2dialogdlg.cpp(138) : {75} client block at 0x00035550, subtype c0, 236 bytes long.
a CMediaPlayer object at $00035550, 236 bytes long
Object dump complete.

一直没去在意这一段错误的信息,晚上的时候再认真看一下,原来是内存泄露的调试信息,赶紧看一下程序,才发现自己在delete前的if判断中把判断条件写错了,狂晕。。。赶紧改回来。

查了一下文章,在.cpp文件中进行以下定义后(自动生成),在DEBUG时就会进行内存泄露的检查了。

  #ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
  #endif

在非MFC程序中可在程序的入口处加入以下代码进行内存泄露检测:(文章中看到的,未测试)

  int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
  tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
  _CrtSetDbgFlag( tmpFlag );

刚开始正式的进行VC++的编程,正在不断学习中。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值