找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3914|回复: 2

请教各位大大一个问题,关于ACE单体实例

[复制链接]
发表于 2007-12-15 22:12:25 | 显示全部楼层 |阅读模式
在学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.0  ACE版本为5.4
望达人大大们能不吝赐教!
 楼主| 发表于 2007-12-15 22:12:38 | 显示全部楼层
你写错了,改成ACE_LOG_MSG->就成了。
 楼主| 发表于 2007-12-15 22:12:49 | 显示全部楼层
非常感谢!一针见血(~> <~),偶太粗心了,猪。

源码如下:

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 ()
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-6-12 08:01 , Processed in 0.016655 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表