Макрос ACE_TRACE не работает

Я следую книге Стивена Д. Хьюстона, Джеймса С.И. Джонсона, Умара Сийида Руководство программиста ACE: Практические шаблоны проектирования для сетевого и системного программирования. В этой книге в самом начале есть листинг:

#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

Но выводит:

Hi Mom
Howdy Pardner
Goodnight

Я запускаю его в Windows 7, Visual C++ 2010, как консольное приложение Win32. Есть ли другой способ легко выучить ACE? Учиться таким образом кажется утомительным. Qt имеет собственную кроссплатформенную сетевую библиотеку. Есть ли у ACE какие-либо преимущества перед библиотекой Qt?


person Isfar Ahmad Sifat    schedule 14.07.2012    source источник


Ответы (1)


Это потому, что вы не определили ACE_NTRACE, и поэтому ACE_TRACE по умолчанию ничем не заменяется. Добавьте это в свой код:

#define ACE_NTRACE 0
person Eitan T    schedule 14.07.2012
comment
У меня нет 15 репутаций, поэтому я не могу проголосовать за него :(. Можете ли вы предложить мне какой-нибудь хороший ресурс для изучения ACE? - person Isfar Ahmad Sifat; 14.07.2012
comment
Это онлайн-руководство по ACE может помочь вам начать... - person Eitan T; 14.07.2012
comment
Я думаю, что этот учебник устарел. Когда я пытаюсь скомпилировать первую программу, она показывает ошибки. Например, когда я компилирую программу этой страницы ссылка, я получаю сообщение об ошибке типа: фатальная ошибка C1083: невозможно открыть включаемый файл: "acceptor.h": нет такого файла или каталога. Когда я меняю «acceptor.h» на «ace/Acceptor.h», возникает куча ошибок. Не могли бы вы мне помочь. - person Isfar Ahmad Sifat; 15.07.2012
comment
Извините, я не заметил. Это не заголовок ACE, а пользовательский заголовок. Еще раз спасибо за вашу помощь. - person Isfar Ahmad Sifat; 15.07.2012