一个简单的将GUI程序的log信息输出到关联的Console窗口中

4 篇文章 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文档.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值