Я следую книге Стивена Д. Хьюстона, Джеймса С.И. Джонсона, Умара Сийида Руководство программиста 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?