VC利用console调试和记录日志

#include <stdio.h>
//释放控制台窗口
FreeConsole();
//申请控制台窗口 
AllocConsole();
//设置标题
SetConsoleTitle(TCHAR);
//重定向输出到控制台
freopen("CONOUT$","w+t",stdout);
//重定向输出到文件
freopen("output.txt","a+",stdout);
//设置控制台文字和背景颜色
SetConsoleTextAttribute()
//获取标准输出窗口
GetStdHandle(STD_OUTPUT_HANDLE)
// 重新设置缓冲区大小 
COORD size = {1024, 1024}; 
SetConsoleScreenBufferSize(hOut,size); 
// 重置窗口位置和大小 
SMALL_RECT rc = {0,0, 1024-1, 1024-1};
SetConsoleWindowInfo(hOut,true ,&rc);
//强制刷新缓冲区
fflush(stdout);

调试GUI程序,只需要包含stdio.h ,然后再OnCreate()或者Init.. 中 AllocConsole(),然后重定向输出到控制台,就可以利用printf…等函数将信息输出到控制台窗口.控制台实际的头文件在 #include


#define PRINT_INFO

 #define ErrA{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);}printf
#define InfoA{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);}printf
//wprintf 如果输出中文有问题,尝试包含头文件#include <locale.h> 然后setlocale(LC_ALL, "chs");
#define ErrW{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);}wprintf
#define InfoW{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);}wprintf

#ifdef PRINT_INFO
#ifdef _UNICODE
#define ErrErrW
#define InfoInfoW
#else
#define ErrErrA
#define InfoInfoA
#endif
#else
#define Err
#define Info
#endif
ErrA(错误:%d %s",nErrID,"错误信息");
ErrA(%s %d Err:%d %s",__FUNCTION__, __LINE__,nErrID,"错误信息");
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值