首页>
技术资讯>
详情

WinCE中将调试信息写入文件的方法

2016-05-12 来源:佚名 阅读量: 0
关键词: WINCE

    相信做WinCE开发的朋友都会经常用串口将自己的调试信息打印输出,用来跟踪程序的运行情况,但在有的时候如果机器没有调试串口,我们可以将这些信息写入文本文件中,方便出现Bug后进行代码的跟踪,现将自己写的一段代码发上来与大家分享,希望大家多提建议。

    代码中用一个宏,就可以方便的控制调试信息是写文件还是打印输入到调试串口,其中写文件部分给出了两种方法,一种是利用Win32 API的方式写文件,令一种是利用C语言的函数写文件,封装后用起来我觉得还是挺方便的,就跟使用printf/wprintf函数差不多,废话少说,下面直接贴上源代码。

    /*************************************************************************************************

    ** 文件名称:  WriteDebugLog.h

    ** 摘     要: 用于处理调试时的Debug信息,通过宏WRITELOG_METHOD的不同取值来控制Debug信息的输出方式

    **             WRITELOG_METHOD = 0,用于程序发布后关闭所有的调试信息;

    **             WRITELOG_METHOD = 1,利用Win32 API函数将调试信息写入文件,在没有调试串口的时候可以取该值;

    **             WRITELOG_METHOD = 2,利用C语言相关函数将调试信息写入文件,在没有调试串口的时候可以取该值;

    **             WRITELOG_METHOD = 3,在有调试串口的情况下取该值,可以将调试信息从串口中打印输出。

    ** 用     法: 直接使用LOG或WLOG宏就可以实现所有功能,用法类似printf/wprintf函数。

    *************************************************************************************************/

    #ifndef __WRITE_DEBUG_LOG_H__

    #define __WRITE_DEBUG_LOG_H__

    void WriteDebugLog(const char *format,…);

    void _TWriteDebugLog(const wchar_t *format,…);

    #define WRITE_SYSTIME 1//1表示会写入系统时间,0表示不写入

    #define WRITELOG_METHOD 0//写Debug文件的方法,0表示不做任何操作,1是用win32 API写文件,2是用C语言写文件,3表示用printf函数打印信息

    #if (WRITELOG_METHOD == 1)

    #define STORAGE_ROOT_PATH   TEXT("\\Storage Card\\log.txt")

    #elif (WRITELOG_METHOD == 2)

    #define STORAGE_ROOT_PATH   ("\\Storage Card\\log.txt")

    #endif

    #if (WRITELOG_METHOD == 3)

    #define LOG  printf

    #define WLOG wprintf

    #elif (WRITELOG_METHOD != 3)

    #define LOG  WriteDebugLog

    #define WLOG _TWriteDebugLog

    #endif

    #endif /*__WRITE_DEBUG_LOG_H__*/

    /*************************************************************************************************

    ** 文件名称:  WriteDebugLog.cpp

    ** 摘     要: 用于处理调试时的Debug信息,通过宏WRITELOG_METHOD的不同取值来控制Debug信息的输出方式

    **             WRITELOG_METHOD = 0,用于程序发布后关闭所有的调试信息;

    **             WRITELOG_METHOD = 1,利用Win32 API函数将调试信息写入文件,在没有调试串口的时候可以取该值;

    **             WRITELOG_METHOD = 2,利用C语言相关函数将调试信息写入文件,在没有调试串口的时候可以取该值;

    **             WRITELOG_METHOD = 3,在有调试串口的情况下取该值,可以将调试信息从串口中打印输出。

    ** 用     法: 直接使用LOG或WLOG宏就可以实现所有功能,用法类似printf/wprintf函数。

    *************************************************************************************************/

    #include "stdafx.h"

    #include <windows.h>

    #include "WriteDebugLog.h"

    HANDLE ghLogFile = NULL;

    FILE *fp = NULL;

    int _tmain(int argc, _TCHAR* argv[])

    {

    LOG("%d\r\n", 123456);

    WLOG(L"%d\r\n", 654321);

    return 0;

    }

 

热门推荐 查看更多