非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

转载于:https://www.cnblogs.com/vc60er/archive/2010/11/05/3998640.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值