VC下ACE_DEBUG 的输出在那里??
#include "ace/Log_Msg.h"
void foo (void);
int ACE_TMAIN (int, ACE_TCHAR *[])
{ACE_TRACE(ACE_TEXT ("main"));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHi Mom\n")));
foo();
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IGoodnight\n")));
return 0;
}
void foo (void)
{ACE_TRACE (ACE_TEXT ("foo"));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHowdy Pardner\n")));
}按照书上写的有下面的结果(1024) calling main in file `Simple1.cpp' on line 7
Hi Mom
(1024) calling foo in file `Simple1.cpp' on line 18
Howdy Pardner
(1024) leaving foo
Goodnight
(1024) leaving main 我怎么没看见 (1024) calling main in file `Simple1.cpp' on line 7 (1024) calling foo in file `Simple1.cpp' on line 18 (1024) leaving main这几行啊 !!!??? 找到了
是否产生日志输出与是否去掉 “stdafx.h预编译”没有关系,
真正起作用的是下面这句宏定义
#define ACE_NTRACE 0
原因如下:
日志宏是否产生日志方法调用,由相应的配置设置在编译时的值决定(见《ACE程序员指南》31页),ACE_NTRACE的值默认为1(在config-win32-common.h中定义的),表示禁用ACE_TRANCE宏,把ACE_NTRACE 定义为0,则表示启用宏ACE_TRACE,所以当定义了语句
#define ACE_NTRACE 0 之后,就可以显示ACE_TRACE宏了。
注意,语句#define ACE_NTRACE 0 要放在#include "ace/Log_Msg.h"
的前面,否则无效,因为在ace/Log_Msg.h中已经定义ACE_NTRACE 为1
页:
[1]