zoukankan      html  css  js  c++  java
  • 关于在VS2008以下版本的MFC程序使用VS 2008 FeaturePack出现内存泄露的理解

    作者:朱金灿
    来源:http://blog.csdn.net/clever101/


          题目有点长,但是想不到更好的题目。在家编个小程序,将以前用VS 2005编的一个工程升级到VS 2008,同时使用VS 2008 Feature Pack中的新控件。


          在调试程序出现内存泄露:
    Detected memory leaks!
    Dumping objects ->
    {914} client block at 0x01481660, subtype c0, 200 bytes long.
    a CMFCVisualManager object at $01481660, 200 bytes long


           到网上搜索了一下,找到了答案。原因在于VS2008中MFC程序中的应用程序类都派生自CWinAppEx,VS 2008的程序里有一个CMFCVisualManager类的全局对象,负责管理可视化界面,具体来说就是一个单件(设计模式中的单件模式),CWinAppEx类的ExitInstance函数可以析构这个对象。但是以往的MFC程序的应用程序类都派生自CWinApp,因为需要在ExitInstance函数手动这个类对象,具体就是在应用程序类的ExitInstance函数添加代码:


     


          这样就不会有内存泄露了。


  • 相关阅读:
    「考试」省选27
    「考试」省选26
    「考试」省选25
    $dy$讲课总结
    「笔记」$Min\_25$筛
    「考试」省选24
    「总结」多项式生成函数例题(4)
    「总结」多项式生成函数相关(4)
    「考试」省选23
    「总结」后缀3
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6471022.html
Copyright © 2011-2022 走看看