看板Programming
标 题Re: [问题] 请问BCB在有form的情况下
发信站秘密情人资讯站 (Fri Apr 6 08:40:06 2007)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!news.ee.ttu!Secret
※ 引述《[email protected] (www.dev.idv.tw)》之铭言:
> ※ 引述《[email protected] (三亿两千万大散户)》之铭言:
> > 用OutputDebugString
> > 直接执行exe档
> > 用工具看Output
> > http://www.microsoft.com/technet/sysinternals/utilities/DebugView.mspx
> > 在IDE debug mode下debug讯息会被IDE拦截
> > 显示在IDE的Output视窗内而不会显示在DebugView内
> 这是把OutputDebugString包装成比较像printf的范例。
> 参考参考吧。
> http://tinyurl.com/34pk3d
看了一下网页内容,有个疑问
#ifdef _DEBUG
static void __dbg_printf (const char * format,...)
{
#define MAX_DBG_MSG_LEN (1024)
char buf[MAX_DBG_MSG_LEN];
va_list ap;
va_start(ap, format);
_vsnprintf(buf, sizeof(buf), format, ap);
OutputDebugString(buf);
va_end(ap);
}
#define DBG __dbg_printf
#else
static void __dbg_printf (const char * format,...) {}
#define DBG 1?((void)(NULL)):__dbg_printf
#endif
看得出来它让 _DEBUG 没定义时,程式中呼叫的 DBG 就完全不做任何事
可是为什麽还要特地写成一个 conditional expression,而且还是绝对成立的
这样有什麽特别用意吗?
(毕竟此时直接呼叫空白定义版的 __dbg_printf 就已经达到不做事的目的了)
--
@, ●秘密情人● (bbs.cse.ttu.edu.tw)
~\ ◆ Post From: 220-132-114-113.HINET-IP.hinet.net ◆