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

大熊的口袋

 

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 大熊的口袋 閱讀(1680) 評論(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>
            一本久道久久综合婷婷鲸鱼| 久久久亚洲午夜电影| 校园春色综合网| 国产精品伦理| 久久久久国产精品www | 午夜一区不卡| 韩国成人精品a∨在线观看| 久久先锋资源| 国产精品拍天天在线| 久久疯狂做爰流白浆xx| 欧美福利视频| 亚洲免费伊人电影在线观看av| 国产欧美日韩亚洲| 欧美 日韩 国产精品免费观看| 99re在线精品| 久久综合九九| 99伊人成综合| 国户精品久久久久久久久久久不卡 | 久久国产日韩| 亚洲人成久久| 亚洲综合丁香| 亚洲国产精品一区二区www| 欧美人交a欧美精品| 欧美一区免费视频| 亚洲精品久久视频| 久久综合伊人77777尤物| 一区二区三区国产| 在线观看欧美一区| 欧美特黄一区| 免费国产一区二区| 欧美一区二区精品久久911| 亚洲国产精品久久| 久久久久久国产精品mv| 亚洲视频综合| 亚洲国产精品成人综合色在线婷婷 | 久久精品网址| 亚洲婷婷综合久久一本伊一区| 美日韩丰满少妇在线观看| 亚洲一级黄色片| 亚洲九九九在线观看| 狠狠色丁香久久综合频道 | 国产精品自拍视频| 欧美精品久久一区| 久久夜色精品亚洲噜噜国产mv | 欧美日韩黄色大片| 久久一日本道色综合久久| 亚洲欧美国产高清va在线播| 亚洲第一天堂av| 久久综合色影院| 久久精品日韩欧美| 欧美一级午夜免费电影| 亚洲午夜av在线| av成人免费在线| 亚洲精品久久久久久久久久久久久 | 午夜精品久久久久| 一区二区激情视频| 99精品久久久| 亚洲美女视频在线免费观看| 亚洲大片一区二区三区| 国内成人精品2018免费看| 国产无一区二区| 国产片一区二区| 国产亚洲欧美激情| 国产视频观看一区| 国产亚洲午夜| 国产中文一区二区| 国内精品美女在线观看| 海角社区69精品视频| 国产一区二区你懂的| 国产亚洲一区在线播放| 国产午夜精品在线| 好男人免费精品视频| 一区二区在线观看视频| 在线播放亚洲一区| 亚洲人www| 一本色道久久综合狠狠躁的推荐| 日韩视频不卡中文| 一本色道久久综合精品竹菊 | 欧美精品一区二区三区很污很色的| 久久中文字幕一区| 免费一级欧美片在线播放| 欧美成人网在线| 欧美日韩精品伦理作品在线免费观看| 欧美精品国产一区| 欧美午夜视频一区二区| 国产精品久久久久久久久久三级| 国产精品一级二级三级| 黄色一区三区| 亚洲精品日本| 亚洲欧美日本另类| 久久亚洲视频| 亚洲精品一二区| 亚洲欧美日韩电影| 久久综合免费视频影院| 欧美日韩激情小视频| 国产精品网站在线观看| 精品不卡在线| 99精品国产在热久久| 欧美一区二区三区久久精品茉莉花| 久久精品午夜| 亚洲国产精品一区二区www在线| 亚洲精品综合| 欧美专区日韩视频| 欧美激情第1页| 国产欧美综合一区二区三区| 伊人蜜桃色噜噜激情综合| 一本到高清视频免费精品| 欧美在线亚洲综合一区| 久热精品视频在线观看一区| 亚洲精品系列| 久久精品91久久香蕉加勒比| 欧美激情一区二区三区在线视频观看 | 久久一日本道色综合久久| 欧美日韩一区三区| 激情综合网址| 亚洲网友自拍| 欧美成人一区二区三区在线观看| 在线一区二区三区四区| 美女精品视频一区| 国产伦精品免费视频| 一区二区三区|亚洲午夜| 久久综合九色99| 亚洲一区二区三区欧美 | 亚洲高清免费在线| 午夜伦理片一区| 亚洲区第一页| 久久精品国产亚洲一区二区三区| 欧美高清在线视频观看不卡| 国产亚洲一区精品| 亚洲欧美制服另类日韩| 亚洲人线精品午夜| 久久亚洲精品中文字幕冲田杏梨| 国产精品一区二区视频| 亚洲色在线视频| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美诱惑福利视频| 国产精品久久久久久久久婷婷 | 免费一级欧美在线大片| 午夜精品久久久久久久久久久久 | 亚洲美女啪啪| 欧美大片免费观看在线观看网站推荐| 亚洲综合色自拍一区| 欧美视频日韩| 日韩视频免费观看| 欧美激情1区| 久久乐国产精品| 激情综合色综合久久综合| 久久精品五月| 欧美一区国产一区| 国产婷婷97碰碰久久人人蜜臀| 亚洲专区在线| 中文成人激情娱乐网| 欧美日韩一区视频| 亚洲一区不卡| 正在播放亚洲| 国产精品久久久久永久免费观看 | 亚洲破处大片| 欧美激情欧美激情在线五月| 亚洲人成亚洲人成在线观看图片 | 亚洲欧洲日韩女同| 欧美精品在线极品| 一二三区精品福利视频| 日韩手机在线导航| 国产精品国产三级国产专区53| 亚洲婷婷免费| 亚洲综合丁香| 激情综合自拍| 欧美激情一区二区三区在线视频观看 | 久久久国产一区二区三区| 欧美一区三区三区高中清蜜桃| 国产欧美日韩精品一区| 久久久久久亚洲精品杨幂换脸| 欧美在线亚洲综合一区| 好吊视频一区二区三区四区| 免费日本视频一区| 欧美国产日本高清在线| 中文欧美日韩| 小处雏高清一区二区三区| 激情综合久久| 亚洲日本无吗高清不卡| 国产精品久久久久免费a∨大胸| 欧美亚洲自偷自偷| 久久久久久亚洲综合影院红桃| 亚洲三级免费观看| 亚洲色图在线视频| 狠狠色丁香久久婷婷综合_中| 欧美国产精品中文字幕| 欧美日韩国产天堂| 久久aⅴ国产欧美74aaa| 蜜臀a∨国产成人精品| 日韩小视频在线观看专区| 亚洲一区欧美一区| 亚洲成人资源网| 一卡二卡3卡四卡高清精品视频| 国产欧美日韩在线| 亚洲激情网站免费观看| 国产精品网站视频| 亚洲高清激情| 国产精品自拍网站| 亚洲国语精品自产拍在线观看|