请教各位大大一个问题,关于ACE单体实例
在学ACE日志方法中:ACE_Log_Msg#include "stdafx.h"
#include "ace/Log_Msg.h"
//using namespace std;
void foo(void);
int ACE_TMAIN(int , ACE_TCHAR *[] )
{
ACE_TRACE(ACE_TEXT("main"));
ACE_DEBUG((LM_INFO,ACE_TEXT("%I Hi Mom\n")));
foo();
ACE_DEBUG((LM_INFO,ACE_TEXT("%I goodnight\n")));
int i;
scanf("%d",&i);
return 0;
}
void foo (void)
{
ACE_TRACE(ACE_TEXT("foo"));
ACE_DEBUG((LM_INFO,ACE_TEXT("%I howdy Pardnet\n")));
}
以上程序能如书上示例正常显示结果,但若是加入全局单体实例时,却不能正常调用,如加入这一句话,以设定日志级别
ACE_Log_Msg->priority_mask(LM_DEBUG | LM_NOTICE,ACE_Log_Msg::PROCESS);//这一句是书上原句
则报错为
error C2143: syntax error : missing ';' before '->'
对其另再进行实例化
ACE_Log_Msg * Ace_pri = new ACE_Log_Msg;
则能正常运行显示,ACE_Log_Msg应该为ACE自动管理的全局单体实例, 请问是否有哪里配置不对呢。。。
用的是VC6.0ACE版本为5.4
望达人大大们能不吝赐教! 你写错了,改成ACE_LOG_MSG->就成了。 非常感谢!一针见血(~> <~),偶太粗心了,猪。
源码如下:
static ACE_Log_Msg *instance (void);//所以后来偶写了如下代码。
ACE_Log_Msg::instance ()->priority_mask(LM_DEBUG | LM_NOTICE,ACE_Log_Msg::PROCESS);
而竟然忽略了声明部分有这么一行:
#define ACE_LOG_MSG ACE_Log_Msg::instance ()
页:
[1]