// 使用OutputDebugString很不方便.不能自定义格式化输出.所以重写了一下.

#include <tchar.h>
#include <windows.h> void __cdecl MyOutputDebugStrig(const _TCHAR* pszFormat, ...)
{
_TCHAR buf[1024] = { 0 };
// ZeroMemory( buf, 1024*sizeof(TCHAR ) );
swprintf_s(buf, 1024, _T("线程ID = [%lu]"), GetCurrentThreadId());
va_list arglist;
va_start(arglist, pszFormat);
int nBuffSize = _tcslen(buf);
vswprintf_s(&buf[nBuffSize], 1024 - nBuffSize, pszFormat, arglist);
va_end(arglist);
nBuffSize = _tcslen(buf);
_tcscat_s(buf, 1024 - nBuffSize, _T("\n"));
OutputDebugString(buf);
}
注意,请使用UNICODE字符集.

windows 重写调试输出的更多相关文章

  1. 深入理解Windows X64调试

    随着64位操作系统的普及,都开始大力进军x64,X64下的调试机制也发生了改变,与x86相比,添加了许多自己的新特性,之前学习了Windows x64的调试机制,这里本着“拿来主义”的原则与大家分享. ...

  2. 【转】分享两个基于MDK IDE的调试输出技巧

    我们在STM32开发调试过程中,常常需要做些直观的输出,如果手头没有相关的设备或仪器,我们可以使用 IDE自带的工具.这里分享两个基于MDK  IDE的调试输出技巧. 一.使用其自带的逻辑分析仪查看波 ...

  3. Windows反调试技术(下)

    OD的DBGHELP模块 检测DBGHELP模块,此模块是用来加载调试符号的,所以一般加载此模块的进程的进程就是调试器.绕过方法也很简单,将DBGHELP.DLL改名. #include <Wi ...

  4. android调试输出

    测试时不想直接debug总要调试输出一些字符串信息,那以下方法可选: 1.用Log.i(TAG, "onCreate");日志输出. 先要引用 import android.uti ...

  5. System.out.println调试输出

    Android开发中在代码中通过System.out.println调试输出在Logcat窗口中可以看到. 但Logcat视图中夹杂了太多的其它App及底层的信息,看起来并不明朗.可以在Logcat视 ...

  6. Windows Kernel Way 1:Windows内核调试技术

    掌握Windows内核调试技术是学习与研究Windows内核的基础,调试Windows内核的方式大致分为两种: (1)通过Windbg工具在Windows系统运行之初连接到Windows内核,连接成功 ...

  7. 将windows控制台内容输出到文件中

    将windows控制台内容输出到文件中 dir>c:/file.txt 2>&1   对应的java  class   >c:/file.txt 2>&1   ...

  8. windows本地调试安装hadoop(idea) : ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path

    1,本地安装hadoop https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 下载hadoop对应版本 (我本意是想下载hadoop ...

  9. Windows程序调试系列: 使用VC++生成调试信息 转

    Windows程序调试系列: 使用VC++生成调试信息 ZhangTao,zhangtao.it@gmail.com, 译自 “Generating debug information with Vi ...

随机推荐

  1. 使用opencv调用24*24点阵字库和8*16ASCII字库在图片显示文字数字

    课程实验:编程读汉字点阵字库,把自己的名字和学号叠加到图片的右下位置. 主要步骤分为三部分 第一部分:读取图片(文件读取) 第二部分:读取文字并从字库中提取相应的编码(字库的存储原理) 第三部分:将相 ...

  2. Java容器:List

    集合类的层次关系 List接口简介 List的常用方法 List实例 Vector ArrayList Vector和ArrayList的扩容 LinkedList 参考文章 今天开始更新Java集合 ...

  3. HTML标签fieldset

    一个不常用的HTML标签fieldset,不过我觉得比较有意思,其语法如下: <fieldset> <legend>fieldset名称</legend> < ...

  4. 第二次作业 单例模式的SessionFactory

    一.基础Hibernate环境搭建(参见http://www.cnblogs.com/sangewuxie/p/9004968.html) 二.实体类User及User.hbm.xml配置 1.Use ...

  5. ImportError: cannot import name webdriver

    遇到问题: 学习selenium过程中为了方便自己知道学习的脚本的存放路径,以selenium命名 起初.py文件都在selenium文件夹下面,使用 from selenium import web ...

  6. LR测试

    LoadRunner种预测系统行性能负载测试工具通模拟千万用户实施并发负载及实性能监测式确认查找问题LoadRunner能够整企业架构进行测试通使用 LoadRunner企业能限度缩短测试间优化性能加 ...

  7. 用redis的scan命令代替keys命令,以及在spring-data-redis中遇到的问题

    摘要 本文主要是介绍使用redis scan命令遇到的一些问题总结,scan命令本身没有什么问题,主要是spring-data-redis的问题. 需求 需要遍历redis中key,找到符合某些pat ...

  8. Socket 聊天工具

    package cn.davy.mychat; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.FontD ...

  9. golang项目中使用条件编译

    golang项目中使用条件编译 C语言中的条件编译 golang中没有类似C语言中条件编译的写法,比如在C代码中可以使用如下语法做一些条件编译,结合宏定义来使用可以实现诸如按需编译release和de ...

  10. Git Submodule简单操作

    基于组件的项目很多,但是如果直接用包的方式直接引用到项目中,如果出现问题很难进行调试的操作,也很难进行组件的优化和管理,所以写了一篇文章来介绍下git submodule的用法,用submodule可 ...