zoukankan      html  css  js  c++  java
  • 非mfc程序下使用TRACE,ASSERT,VERIFY

    #pragma once

    //----------------------------------------------------------------
    //----------------------------------------------------------------


    #ifdef _DEBUG
    static void MyDebug_Trace(LPCTSTR szFormat, ...)
    {
        va_list args;
        va_start(args, szFormat);

        TCHAR szBuffer[MAX_PATH * 2] = {0};
        int nBuf = _vstprintf(szBuffer, szFormat, args);

        if (nBuf < (sizeof(szBuffer) / sizeof(szBuffer[0]) - 1))
            OutputDebugString(szBuffer);
        else
            OutputDebugString(szFormat);

        va_end(args);
    }

    #define TRACE                    ::MyDebug_Trace
    #define TRACE0(sz)              ::MyDebug_Trace(_T("%s"), _T(sz))
    #define TRACE1(sz, p1)          ::MyDebug_Trace(_T(sz), p1)
    #define TRACE2(sz, p1, p2)      ::MyDebug_Trace(_T(sz), p1, p2)
    #define TRACE3(sz, p1, p2, p3)  ::MyDebug_Trace(_T(sz), p1, p2, p3)

    #else

    inline static void MyDebug_Trace(LPCTSTR, ...) { }
    #define TRACE              1 ? (void)0 : ::MyDebug_Trace
    #define TRACE0(sz)
    #define TRACE1(sz, p1)
    #define TRACE2(sz, p1, p2)
    #define TRACE3(sz, p1, p2, p3)

    #endif


    #ifdef _DEBUG

    #define ASSERT(x) {if(!(x)) _asm{int 0x03}}
    #define VERIFY(x) {if(!(x)) _asm{int 0x03}} // 译注:为调试版本时产生中断有效

    #else

    #define ASSERT(x)
    #define VERIFY(x) x // 译注:为发行版本时不产生中断

    #endif

  • 相关阅读:
    Redis主从同步分析(转)
    Jedis使用总结【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】(转)
    PHP之PDO_MYSQL扩展安装步骤(转)
    MongoDB 那些坑(转)
    CF 222 (DIV 1)
    TC SRM601
    TC SRM600 DIV2
    Github入门教程
    2013长春区域赛总结
    退役了~~~~~~~~~~~~
  • 原文地址:https://www.cnblogs.com/vc60er/p/3998640.html
Copyright © 2011-2022 走看看