能力值:
( LV2,RANK:10 )
|
-
-
2 楼
int PutDbgStr(LPCTSTR lpFmt, ...)
{
TCHAR Msg[1024];
int len=wvsprintf(Msg,lpFmt,va_list(1+&lpFmt));
OutputDebugString(Msg);
return len;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
这个就是叫 "可变参数列表"吧?
谢谢 skykrnl...
刚才试了一下.果然好用呀!!
为什么: va_list(1+&lpFmt)); 这里必须加 1 呢?
另外..问一下...可不可以让他在DEUBG 模式下输出...release 不输出呢?
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
字符串到'\0'结尾,加1,才是你可变参数的变量地址。
int PutDbgStr(LPCTSTR lpFmt, ...)
{
#ifdef DEBUG
TCHAR Msg[1024];
int len=wvsprintf(Msg,lpFmt,va_list(1+&lpFmt));
OutputDebugString(Msg);
return len;
#else
return 0
#endif
}
实现Release版不输出
|
能力值:
( LV13,RANK:530 )
|
-
-
5 楼
#include "stdafx.h"
#include "debug.h"
#include "windows.h"
#define DEBUG_PROC
#ifndef MODE_NODEBUGOUTPUT
void DbgPrint(char * formatstr,...)
{
va_list argptr;
va_start(argptr, formatstr);
char buf[1024];
wvsprintfA(buf,formatstr,argptr);
//strcat(buf,"\n");
::OutputDebugStringA(buf);
}
#endif
|
|
|