-

- 加为好友
- 发送私信
- 在线聊天
-
21bird
- 等级:

- 可用分等级:
- 总技术分:
- 总技术分排名:
- 结帖率:
|
| 发表于:2008-11-06 18:38:12 楼主 |
linux,使用了expat和ace(个人比较看好ace的调试宏输出:)) 情况大概是这样的: main.cpp内容: - C/C++ code
static void XMLCALL
startElement(void *userData, const char *name, const char **atts)
{
fprint(...);//输出节点内容
}
static void XMLCALL
endElement(void *userData, const char *name)
{
....
}
main()
{
...//调用expat解析一句xml,完毕后释放所有expat资源。
//用ace输出结束信息
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Normal shutdown.\n")));
}
一切正常,可是……换个做法…… 增加个class A之后…… A.cpp内容: - C/C++ code
static void XMLCALL
startElement(void *userData, const char *name, const char **atts)
{
fprint(...);//输出节点内容
}
static void XMLCALL
endElement(void *userData, const char *name)
{
....
}
A::Do()
{
...//调用expat解析一句xml,完毕后释放所有expat资源。
}
main()
{
A a;
a.Do();
//用ace输出结束信息
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Normal shutdown.\n")));
}
这样也不出错,可是有个奇怪的现象。 输出结果竟然变成了: - C/C++ code
Normal shutdown.
....//xml解析内容
就是说,明明应该在最后一句的信息竟然跑到前面去了…… 而且我发现,如果ace宏换成用std::cout就没问题了……纳闷中……有人给解释下不? |
|
|
|
38
修改
删除
举报
引用
回复
| |