1.下载
ACE+TAO下载地址:http://download.dre.vanderbilt.edu/previous_versions/
VS2010下载地址:https://pan.baidu.com/mbox/homepage?short=c1Z61lm
最新版本6.4.3是用vs2012以上版本编译,本文介绍的ACE_TAO的版本是6.2.6,它VS编译版本是10或11。另外,下载源码库最好不要带src后缀的,sources - only包只 包含源代码,您必须使用MPC生成自己的makefile。
不同的平台安装过程在 http://www.dre.vanderbilt.edu/~schmidt/ACE-install.html都有介绍,想了解的可以去看看。
2.解压
解压到指定目录,如D:\ACE_TAO_6.2.6\ACE_wrappers,文件路径最好不要带中文字符
3.坏境变量设置
添加系统变量
ACE_ROOT:D:\ACE_TAO_6.2.6\ACE_wrappers; TAO_ROOT:D:\ACE_TAO_6.2.6\ACE_wrappers\TAO;
4.编译ACE
1).在解压目录\ACE_wrappers\ace 下创建一个config.h文件,内容为: #include "ace/config-win32.h"
具体的宏定义添加意义在这里就不详细讲解,目前我用到这些
#ifndef __ACE_CONFIG_H
#define __ACE_CONFIG_H
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_DISABLE_WIN32_ERROR_WINDOWS
#define ACE_DISABLE_WIN32_INCREASE_PRIORITY
#define ACE_NO_INLINE
#define ACE_HAS_MFC 1
#include "ace/config-win32.h"
#endif /* __ACE_CONFIG_H */
2).用VS2010打开 D:\ACE_TAO_6.2.6\ACE_wrappers\TAO\ TAO_ACE_vc10.sln,设置ACE为启动项,右键属性:
a)VC++目录——包含目录 添加 $(ACE_ROOT)
b)VC++目录——库目录 添加 $(ACE_ROOT)\lib
3). 生成解决方案
4).编译成功后的文件在 ACE_wrappers\lib目录下(建议debug和release版都生成下)
5.VS项目中使用ACE
右键项目属性 ,配置
VC++ Directories-->Include Directories D:\ACE_TAO_6.2.6\ACE_wrappers
VC++ Directories-->Library Directories D:\ACE_TAO_6.2.6\ACE_wrappers\lib
C/C++-->General--> Additional include Directories D:\ACE_TAO_6.2.6\ACE_wrappers\TAO
Linker-->General -->Additional Libraray Directories D:\ACE_TAO_6.2.6\ACE_wrappers\lib
Linker-->General-->Additional Dependencies TAOd.lib ACEd.lib
以下是简单的代码测试以及结果:
#include "stdafx.h"
#include <iostream>
#include <tao/corba.h>
#include <tao/String_Alloc.h>
using namespace std;
#include "stdafx.h"
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
char *p = CORBA::string_alloc(5);
strcpy(p,"Hello");
cout<<p<<endl;
CORBA::string_free(p);
CORBA::String_var s = CORBA::string_dup ("world");
cout<<s.in()<<endl;
cout<<p<<endl;
getchar();
return 0;
}
参考:http://blog.csdn.net/kaci_csdn/article/details/52535589