TOP

__dbg.h(一)
2017-10-11 17:18:54 】 瀏覽:9863
Tags:

#ifndef __HSS_DBG_HSS__
#define __HSS_DBG_HSS__

#include <shlwapi.h>
#pragma comment(lib, "shlwapi.lib")
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define __trace_end    if (__sztrace && __sztrace[0])        \
                        OutputDebugStringA(__sztrace);    \
                    }
#define __trace    \
            {    \
                char __sztrace[260] = {0};    \
                _snprintf(__sztrace, sizeof(__sztrace), 
#define __trace_file    \
            {    \
                char __sztrace[260] = {0};    \
                int _n = _snprintf(__sztrace, sizeof(__sztrace)-1, "%08X %s/%d ", GetCurrentThreadId(), strrchr(__FILE__, '\\') + 1, __LINE__);    \
                _snprintf(__sztrace+_n, sizeof(__sztrace)-_n-1,
#define __trace_fmt(file, line, error)     \
            {                            \
                char __sztrace[260] = {0};    \
                int __n = 0;            \
                if (file && ((char*)file)[0])    \
                {                        \
                    LPCTSTR __p = strrchr(file, '\\');    \
                    if (__p == 0)        \
                        __p = file;        \
                    __n += _snprintf(__sztrace+__n, sizeof(__sztrace)-1-__n, "%s ", __p);    \
                }                        \
                if (line)                \
                {                        \
                    __n += _snprintf(__sztrace+__n, sizeof(__sztrace)-1-__n, "/%d ", line);    \
                }                        \
                if (error)                \
                {                        \
                    int se = GetLastError();    \
                    LPSTR __lpMsgbuf = 0;    \
                    if (FormatMessage(    \
                        FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,    \
                        NULL,            \
                        se,            \
                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),        \
                        (LPSTR) & __lpMsgbuf,    \
                        0,                \
                        NULL)            \
                        )                \
                    {                    \
                        if (__lpMsgbuf && __lpMsgbuf[0])    \
                        {                \
                            __n += _snprintf(__sztrace+__n, sizeof(__sztrace)-1-__n, "%s (%d) ", __lpMsgbuf, se);    \
                        }                \
                        if (__lpMsgbuf)    \
                        {    \
                            LocalFree( __lpMsgbuf );    \
                        }    \
                    }                    \
                }                        \
                __n += _snprintf(__sztrace+__n, sizeof(__sztrace)-1-__n, 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//sample : __trace_bytes("profix", pData, cbData) __trace_end;
#define __trace_bytes(Profix, pData, cbData)    \
        {                                        \
            int __size = cbData * 3 + (Profix == 0 ? 0 : strlen(Profix)) + 32;    \
            char* __sztrace = (char*)alloca(__size);    \
            LPBYTE __p = (LPBYTE)pData;            \
            if (__sztrace)                        \
            {                                    \
                int __n = _snprintf(__sztrace, __size-1, "%s", Profix);    \
                for (int __l = 0 ; __l < cbData ; __l ++)    \
                {                                \
                    DWORD __d = (DWORD)__p[__l];    \
                    __n += _snprintf(__sztrace + __n, __size-1-__n, "%02X ", __d);    \
                }                                \
                __n += _snprintf(__sztrace + __n, __size-1-__n, "(%d)", cbData);    \
                __sztrace[__n] = 0;                \
                __sztrace[__size-1] = 0;        \
            }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#define __F  
		

請關注公眾號獲取更多資料



首頁 上一頁 1 2 下一頁 尾頁 1/2/2
】【打印繁體】【】【】 【】【】【】 【關閉】 【返回頂部
上一篇【轉】鍵盤燈亮無反映解決方法 下一篇無法安裝Windows Live“OnCatalog..