首页 > 其他 > 详细

_CrtDumpMemoryLeaks报告程序中的内存泄露问题(简单示例代码)

时间:2015-09-29 23:19:43      阅读:287      评论:0      收藏:0      [点我收藏+]
// .h 文件  
#pragma once  
class CConsoleDump  
{  
public:  
    explicit CConsoleDump(LPCTSTR lpszWindowTitle = NULL);  
    virtual ~CConsoleDump(void);  
  
public:  
    BOOL DUMP(LPCTSTR lpszFmt, ...);  
    BOOL ShowWindow(BOOL bShowWindow);  
    BOOL SetWindowText(LPCTSTR lpszWindowTitle = NULL);  
};  
  
// .cpp文件  
#include "StdAfx.h"  
#include "ConsoleDump.h"  
  
#define MAX_BUFFER_SIZE (10 * 1024)  
  
CConsoleDump::CConsoleDump(LPCTSTR lpszWindowTitle)  
{  
    if(AllocConsole())  
    {  
        if(NULL != lpszWindowTitle)  
        {  
            SetConsoleTitle(lpszWindowTitle);  
        }  
    }  
}  
  
CConsoleDump::~CConsoleDump(void)  
{  
    FreeConsole();  
}  
  
BOOL CConsoleDump::ShowWindow(BOOL bShowWindow)  
{  
    return ::ShowWindow(GetConsoleWindow(), bShowWindow ? SW_SHOW : SW_HIDE);  
}  
  
BOOL SetWindowText(LPCTSTR lpszWindowTitle)  
{  
    if(NULL != lpszWindowTitle)  
    {  
        return SetConsoleTitle(lpszWindowTitle);  
    }  
    return TRUE;  
}  
  
BOOL CConsoleDump::DUMP(LPCTSTR lpszFmt, ...)  
{  
    TCHAR szText[MAX_BUFFER_SIZE] = {0};  
  
    va_list arglist;  
    va_start(arglist, lpszFmt);  
    _vstprintf_s(szText, _countof(szText), lpszFmt, arglist);  
    va_end(arglist);  
  
    return WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), szText, _tcslen(szText), NULL, NULL);  
}  
  
// 测试使用  
CConsoleDump m_dump; // 定义为类的成员变量  
// 需要的地方利用CConsoleDump::DUMP函数输出log信息即可  
m_dump.DUMP(_T("Hello, World!\r\n")); 

这只是个简单的封装了Console相关的几个函数,关于更多的Console相关的控制,可以参考MSDN文档中的

参考:http://blog.csdn.net/visualeleven/article/details/7628564

_CrtDumpMemoryLeaks报告程序中的内存泄露问题(简单示例代码)

原文:http://www.cnblogs.com/findumars/p/4847425.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!