青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大熊的口袋

 

vc6下支持格式化輸出的調試輸出功能的簡單實現

VC下沒有支持可變參數的調試輸出實現.今天搗鼓了半天做了一個簡單的:)


// dgb_prt.h

#include <windows.h>

#define _DEBUG_INFO_FILE  "gfx_dbg_info.txt" // 修改這里的輸出文件

VOID _cdecl __DPrt(
const WCHAR *fmt, );
VOID _cdecl __RPrt(
const WCHAR *fmt, );
VOID _cdecl __ADPrt(BOOL, 
const WCHAR *fmt, );
VOID _cdecl __ARPrt(BOOL, 
const WCHAR *fmt, );

#ifndef NDEBUG
# define _DbgPrt __DPrt
#else
# define _DbgPrt __RPrt
#endif

#ifndef NDEBUG
# define _AstPrt __ADPrt
#else
# define _AstPrt __ARPrt
#endif

 

// dbg_prt.cpp

// -------------------------------------------------------------------------
#define _STDOUT_FP        (1)

#define _DEBUG_INFO_FILE  "dbg_info.txt"

// -------------------------------------------------------------------------
typedef struct __DbgPrtPara
{
 FILE 
*pfp;
 
int   pfd;
 unsigned 
long pret;
}
 _DbgPrtPara, *_PDbgPrtPara;

_PDbgPrtPara __stdcall __DPrtInit()
{
 _PDbgPrtPara pDbgPara 
= (_PDbgPrtPara)malloc(sizeof(_DbgPrtPara));
 pDbgPara
->pfd = _dup(_STDOUT_FP);
 pDbgPara
->pfp = freopen(_DEBUG_INFO_FILE, "a+", stdout);
 unsigned 
short buff[128= {'\0'};
 _wstrtime(buff);
 wprintf(L
"%s: ", buff);
 
return pDbgPara;
}


void __stdcall __DPrtClose(_PDbgPrtPara pDbgPara)
{
 fflush(pDbgPara
->pfp);
 fclose(pDbgPara
->pfp);
 _dup2(pDbgPara
->pfd, _STDOUT_FP);
 free(pDbgPara);
 pDbgPara 
= NULL;
}


// -------------------------------------------------------------------------
__declspec(naked) void __DPrt(const unsigned short *fmt, )
{
 
#ifdef _M_IX86
 
 __asm
{
  call    __DPrtInit
  pop     ebx
  mov     dword ptr [eax 
+ 8], ebx
  mov     ebx, eax
  
  call    dword ptr [wprintf]
  
  push    ebx
  mov     eax, dword ptr [ebx 
+ 8]
  mov     ebx, eax
  call    __DPrtClose
  push    ebx
  ret
 }

 
#endif
 
}


// -------------------------------------------------------------------------
void __RPrt(const unsigned short *fmt, )
{
 
}



// -------------------------------------------------------------------------
__declspec(naked) void __ADPrt(unsigned longconst unsigned short *fmt, )
{
 
#ifdef _M_IX86
 
 __asm
{
  mov     eax, dword ptr [esp 
+ 4]
  cmp     eax, 
0
  je      EXE_TRUE
  ret
EXE_TRUE:
  call    __DPrtInit
  pop     ebx
  mov     dword ptr [eax 
+ 8], ebx
  mov     ebx, eax
  pop     eax
  
  call    dword ptr [wprintf]
  
  push    ebx
  mov     eax, dword ptr [ebx 
+ 8]
  mov     ebx, eax
  call    __DPrtClose
  sub     esp, 
4
  push    ebx
  ret
 }

 
#endif
 
}


// -------------------------------------------------------------------------
void _cdecl __ARPrt(unsigned longconst unsigned short *fmt, )
{
 
}


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

 

 

  當然,如果要實時看到輸出,可以用 FindFirstChangeNotification、FindNextChangeNotification、FILE_NOTIFY_CHANGE_LAST_WRITE等來實現一個動態監視并輸出的程序.

  這樣就有點象ddk里的DbgPrint了,呵呵.

posted on 2008-08-27 12:24 大熊的口袋 閱讀(1675) 評論(0)  編輯 收藏 引用 所屬分類: cpp

導航

統計

公告

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

win32 & debug

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品国产亚洲一区二区| 亚洲图片欧洲图片日韩av| 欧美一区二区三区四区在线观看| 国产精品chinese| 午夜精品免费在线| 午夜精品久久久久久久99水蜜桃| 国产免费一区二区三区香蕉精| 久久精品国产91精品亚洲| 久久精品99久久香蕉国产色戒| 亚洲福利专区| 亚洲剧情一区二区| 国产精品尤物福利片在线观看| 久久爱www| 久久资源av| 亚洲免费在线| 久久亚洲精品一区二区| 亚洲精品国产品国语在线app | 国产精品每日更新| 久久噜噜噜精品国产亚洲综合| 久久综合一区| 亚洲欧美经典视频| 久久久亚洲精品一区二区三区| 亚洲美女av网站| 性亚洲最疯狂xxxx高清| 亚洲人www| 午夜免费在线观看精品视频| 亚洲三级性片| 香蕉久久夜色精品| av72成人在线| 久久九九免费| 亚洲欧美中文在线视频| 久久嫩草精品久久久久| 亚洲一区视频| 欧美成人免费网| 久久精品一区二区国产| 欧美大片免费| 狂野欧美激情性xxxx欧美| 欧美色123| 亚洲电影免费观看高清完整版在线观看| 欧美精品偷拍| 欧美va天堂| 国产在线精品自拍| 亚洲一区二区成人| 日韩亚洲视频在线| 免费人成网站在线观看欧美高清| 欧美在线视频免费| 欧美日精品一区视频| 欧美va天堂| 激情久久一区| 久久国产精品久久久| 亚洲一区亚洲| 欧美午夜无遮挡| 亚洲狼人综合| 99re6热在线精品视频播放速度| 久久久久国产精品厨房| 久久久999| 国产亚洲一区二区三区在线播放| 亚洲一区二区在线| 亚洲在线电影| 国产精品成av人在线视午夜片| 亚洲激情不卡| 亚洲免费观看| 欧美精品在线看| 日韩视频在线永久播放| 99国产精品私拍| 欧美日韩播放| 亚洲夜晚福利在线观看| 亚洲欧美一区二区三区在线| 国产精品久久激情| 在线视频精品| 日韩视频一区二区三区在线播放免费观看| 在线观看国产欧美| 久久久五月婷婷| 亚洲电影激情视频网站| 99精品欧美一区二区蜜桃免费| 欧美电影在线观看完整版| 亚洲电影中文字幕| av成人免费在线| 欧美性猛交xxxx乱大交蜜桃| 亚洲线精品一区二区三区八戒| 亚洲欧美日韩在线不卡| 国产视频在线一区二区| 久久久精品一区| 亚洲黑丝在线| 亚洲欧美日韩国产综合精品二区 | 欧美一区激情视频在线观看| 麻豆成人综合网| 亚洲精品美女91| 国产精品久久二区| 欧美一区二区三区电影在线观看| 美日韩精品免费| 亚洲性xxxx| 国产一区二区三区久久精品| 蜜桃久久av| 亚洲线精品一区二区三区八戒| 久久午夜av| 亚洲性色视频| 怡红院av一区二区三区| 欧美精品18+| 久久av在线看| 日韩香蕉视频| 男女激情久久| 亚洲欧美日产图| 亚洲国产女人aaa毛片在线| 欧美日韩免费观看一区=区三区| 亚洲欧美影院| 亚洲精品一二三| 久久综合五月| 午夜精品短视频| 亚洲精品免费一区二区三区| 国产精品一区二区在线观看网站| 免费中文字幕日韩欧美| 中文在线不卡视频| 亚洲国产精品传媒在线观看 | 亚洲第一色在线| 国产精品美女在线观看| 毛片av中文字幕一区二区| 亚洲尤物在线视频观看| 亚洲日韩欧美视频一区| 久久久久国产免费免费| 亚洲男女自偷自拍| 99精品视频免费全部在线| 在线成人免费观看| 国产欧美欧美| 国产精品久久国产精品99gif | 国产女主播在线一区二区| 欧美国产1区2区| 久久在线视频在线| 久久久久久成人| 欧美一区1区三区3区公司| 亚洲自拍高清| 亚洲图片欧美日产| 一区二区高清在线| 亚洲巨乳在线| 99视频一区二区| 日韩午夜高潮| 99v久久综合狠狠综合久久| 最新日韩在线| 亚洲伦理久久| 亚洲麻豆视频| 一本色道久久综合一区| 亚洲精品久久久久久一区二区| 欧美激情视频在线免费观看 欧美视频免费一 | 国产精品一区三区| 国产精品一区亚洲| 国产日韩欧美不卡| 国产欧美欧洲在线观看| 国产日韩一区| 狠狠色2019综合网| 永久免费视频成人| 亚洲国产毛片完整版| 亚洲日本乱码在线观看| 99re热这里只有精品视频| 99精品视频网| 亚洲欧美精品一区| 欧美中文日韩| 欧美成年人网| 亚洲欧洲精品一区二区三区波多野1战4| 欧美黄污视频| 亚洲精品乱码久久久久久蜜桃91| 亚洲日本成人女熟在线观看| 一区二区福利| 欧美在线亚洲在线| 美女视频黄 久久| 欧美日韩视频在线观看一区二区三区| 国产精品超碰97尤物18| 国产亚洲永久域名| 最新国产乱人伦偷精品免费网站| 99国产精品国产精品久久| 午夜一级久久| 欧美激情国产日韩| 一区二区精品国产| 欧美一级播放| 免费试看一区| 国产精品爽爽ⅴa在线观看| 国产在线视频欧美一区二区三区| 最新国产拍偷乱拍精品| 午夜精品电影| 亚洲盗摄视频| 午夜精品视频| 欧美国产综合视频| 国产一区二区三区视频在线观看| 亚洲激情视频网站| 欧美亚洲一区二区三区| 亚洲国产毛片完整版| 亚洲欧美日韩在线观看a三区| 免费在线观看成人av| 国产麻豆91精品| 亚洲激情一区二区| 久久精品视频在线播放| 亚洲精品乱码久久久久久蜜桃91 | 亚洲男女毛片无遮挡| 另类酷文…触手系列精品集v1小说| 欧美午夜电影完整版| 亚洲国产另类久久久精品极度| 欧美亚洲系列| 99热精品在线| 欧美电影在线免费观看网站| 红桃视频成人| 欧美一级淫片aaaaaaa视频|