使用自己下载的6.0.1版本只需在ACE_wrappers/ace/config.h(没有请自行创建)中添加#define ACE_HAS_IPV6再编译ACE_wrappers_vc8.sln即可, 下面贴出的是我自己的config.h, 具体config有哪些配置及其含义请参照ace目录下的readme文件
之后维护别人写的使用了ace库的代码, 需要添加对IPv6的支持, 由于可能是该ACE库版本太低的缘故, 加上#define ACE_HAS_IPV6编译ACE库会报一个链接错误, 提示函数GetAdaptersAddresses未找到, msdn一下发现要链接上IPHLPAPI.lib, 在VS编译器上加上该库, 问题解决
下面说一下静态编译ACE库, 同样在config.h文件中加上#define ACE_AS_STATIC_LIBS, 接着我的方法是打开ace_static.sln而非ace_vc8.sln进行编译, 编译出来如果是debug版本的名字应该为ACEsd.lib, 中间这个s表示为静态库, d表示为debug版本, 且没有了DLL生成, 之后在要使用该静态ACE库的项目中也添加上宏定义#define ACE_AS_STATIC_LIBS, 就可以使用该静态ACE库了
另外说一下, config.h大家最好加上头文件预处理, 虽然我没加也没出问题, 还有就是define的时候判断下之前有没有已经define过, 这步倒是可有可无, 还有就是有中说法是#include "ace/config-win32.h"最好放在最后, 大家就宁可信其有, 或者出了问题不妨试试吧:)