控制台和MFC中内存泄露工具vld的使用

   最近想检测下项目中内存泄露的情况,选中了vld这款。在查找使用方法的时候,大都是控制台下的示例,添加到main函数所在的源文件上。换成MFC就纠结了,不知道添加到哪里去。本文记录控制台和MFC中的使用vld过程。

   vld资源:

   1)、大家可以移步下边的网址下载:

    http://vld.codeplex.com/releases/view/82311

   2)、也可以到我的资源中下载:

    http://download.csdn.net/detail/alex_my/6238977


    本文使用的是我的资源中的vld1.0版本,VS2008。

   1、控制台:

    将资源下载后,解压到项目根目录。

    

   据说在WIN7下,需要将dbghelp.dll放到Debug目录中。

   将dbghelp.dll放入Debug目录后,才能定位哪一行出错。// 2014.05.09

   打开工程,在main所在的文件添加代码:#include "vld.h",只要添加这个就足够了。

   写了一个func()函数测试:

  

   当整个过程运行完毕之后,结果:

  

  可以双击相应的行,确定出问题的地方。

    

   2、MFC

   这里使用的是VS2012版,与VS2008几乎一样。

   1)首先创建一个MFC工程。

   2)假设在工程里有一个include文件夹专门放置头文件,lib文件夹专门放置lib文件。

    

   3)将解压出的vld中的vld.h,vldapi.h放入include文件夹中。vld.lib,vldmt.lib,vldmtdll.lib放入到lib文件夹中。

   4)进行必要设置:

    C/C++ --> General --> Additional Include Directories : include

    Linker --> General --> Additional Library Directories: lib

    Linker --> Input --> Additional Dependencies: vld.lib,vldmt.lib,vldmtdll.lib

   5)添加vld.h头文件

   在控制台下是放在main函数所在的源文件中,而在MFC下,则放在theApp初始化的源文件中。

   如果找不到的,可以全文搜索:theApp。

   添加好vld.h头文件后,可以写一个测试函数,如上的func函数。

   F5运行,在Output窗口可以看见:

   Visual Leak Detector Version 1.0 installed (single-threaded static).

   Shift + F5,退出

   可以看见内存泄露的地方,如同控制台:

   

   6)编译过程出错

    可能在编译过程中出错,cannot open file 'LIBCD.lib'。

    解决方案:

    VS2008:Linker --> Input  --> Ignore Specific Library: libcd

    VS2012: Linker --> Input  --> Ignore Specific Default Library: libcd


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值