从网上下的版本为ACE-5.4+TAO-1.4+CIAO-0.4,有最新版,只是认为学习用旧一点的版本比较好,稳定且占用空间并不是很多,最关键的是够用了。
然后将其中一个config_win32.h类似的文件修改成config.h文件,编译即可通过。
然后按书中写了一个测试日志的程序:
// testlogmsg.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#define ACE_NTRACE 0
#define ACE_NDEBUG 0
#include "ace/log_msg.h"
#include "ace/Object_Manager.h"
void foo(void)
......{
ACE_TRACE(ACE_TEXT("foo"));
ACE_DEBUG((LM_INFO,ACE_TEXT("%IHowdy Pardner ")));
}
int _tmain(int argc, _TCHAR* argv[])
......{
ACE_Object_Manager s;//这儿书中没有
s.init(); //若不加这行,则跟踪的ACE_TRACE便不会输出。
ACE_TRACE(ACE_TEXT("main"));
// ACE_LOG_MSG->priority_mask(LM_TRACE,ACE_Log_Msg::PROCESS);
ACE_DEBUG((LM_INFO,ACE_TEXT("%IHi Mom ")));
foo();
ACE_DEBUG((LM_INFO,ACE_TEXT("%IGoodnight ")));
return 0;
}
//
#include "stdafx.h"
#define ACE_NTRACE 0
#define ACE_NDEBUG 0
#include "ace/log_msg.h"
#include "ace/Object_Manager.h"
void foo(void)
......{
ACE_TRACE(ACE_TEXT("foo"));
ACE_DEBUG((LM_INFO,ACE_TEXT("%IHowdy Pardner ")));
}
int _tmain(int argc, _TCHAR* argv[])
......{
ACE_Object_Manager s;//这儿书中没有
s.init(); //若不加这行,则跟踪的ACE_TRACE便不会输出。
ACE_TRACE(ACE_TEXT("main"));
// ACE_LOG_MSG->priority_mask(LM_TRACE,ACE_Log_Msg::PROCESS);
ACE_DEBUG((LM_INFO,ACE_TEXT("%IHi Mom ")));
foo();
ACE_DEBUG((LM_INFO,ACE_TEXT("%IGoodnight ")));
return 0;
}
这儿需要注意,你需要先设置一个ACE专用的环境变量,ACE_ROOT:E:/ACE_wrappers(注:我的ACE源码下来后经过改名,最终工程放在了如下路径:E:/ACE_wrappers/ace/ace_dll.vcproj(ace_dll.dsp)),这里特别提醒,最好将源码放在根目录下,最好路径不要有中文名。
然后在测试工程中将几个路径设一下:
附加的包含路径:$(ACE_ROOT)
引入的lib的路径:$(ACE_ROOT)/lib/aced.lib
输出文件的路径:$(ACE_ROOT)/bin/$(ProjectName).exe