赵老师提供的TRACE格式化函数

本文介绍了一种用于调试的输出函数实现方法,通过使用宏定义来控制调试信息的输出,并提供了两个示例函数`LogTrace`和`TraceOut`的具体实现。这些函数能够接受可变数量的参数,并使用`OutputDebugString`将调试信息输出到Windows调试环境中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

void LogTrace(LPCTSTR pszFormat, ...)
{
#ifdef DEBUG
    va_list pArgs;
    TCHAR szMessageBuffer[16380 + 1];
    va_start(pArgs, pszFormat);
    _vsntprintf_s(szMessageBuffer, 16380, pszFormat, pArgs);
    va_end(pArgs);
    OutputDebugString(szMessageBuffer);
#endif
}
void __cdecl TraceOut(LPCTSTR lpszFormat, ...);  //压入任意长度参数
void __cdecl TraceOut(char* lpszFormat, ...); //压入任意长度参数
void __cdecl TraceOut(LPCTSTR lpszFormat, ...)  //压入任意长度参数
{
    va_list args;
    va_start(args, lpszFormat);

    int nBuf;
    TCHAR szBuffer[sizeof(TCHAR) * 0x4096] = { TEXT("Debug:") };

    nBuf = _vstprintf(szBuffer + _tcslen(szBuffer), lpszFormat, args);
    va_end(args);

    OutputDebugString(szBuffer);

}
void __cdecl TraceOut(char* lpszFormat, ...)  //压入任意长度参数
{
    va_list args;
    va_start(args, lpszFormat);

    int nBuf;
    char szBuffer[sizeof(TCHAR) * 0x4096] = { "Debug:" };

//  nBuf = _vstprintf(szBuffer + _tcslen(szBuffer), lpszFormat, args);
    nBuf = vsprintf(szBuffer + strlen(szBuffer), lpszFormat, args);
    va_end(args);

    OutputDebugStringA(szBuffer);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值