zoukankan      html  css  js  c++  java
  • ACE服务端编程1:使用VS2010编译ACE6.0及从ACE5.6升级的注意事项

    ACE是一个跨平台的用于并发通信的C++框架,项目开始时使用的是ACE 5.6发布版,目前最新的ACE版本是6.3.0。

    网上一直有一种黑ACE的氛围,主要黑点在于ACE的复杂和作者的背景,结合实际应用的经验来说,ACE还是C++里最成熟、稳定、全面的网络通信框架,看看有多少论文是与ACE有关的就能验证这一点,如果喜欢轻量级的,可以试试boost asio、Muduo,不过各有坑点~

    考虑项目的稳定性和开发环境的原因,此次选择了ACE6.0.0版本作为升级版本,编译工具也从VS2003升级到VS2010。

    使用VS2010编译ACE6.0:

    1、下载ACE6.0版:

    下载地址:http://download.dre.vanderbilt.edu/previous_versions/

    最新版本下载地址:http://download.dre.vanderbilt.edu/

    直接选择ACE-6.0.0.zip,不包含TAO+CIAO+DAnCE这些框架。。

    2、将压缩包中的文件夹解压到D盘;

    3、添加环境变量:ACE_ROOT="D:Ace6.0ACE_wrappers"  这是ACE解压后的目录:

    4、添加环境变量:Path="%ACE_ROOT%lib":

    5、在ACE_ROOTace目录下新建config.h文件,文件内容:

    #include "ace/config-win32.h"

    6、直接用VS2010打开ACE_vc10.sln进行编译;编译成功后悔在lib目录下生成Aced.dll和Ace.dll。

    ACE的项目划分较细,解决方案下有684项目,不过编译时间很快。

    ACE6.0从ACE5.6升级的注意事项

    开发工具同时从VS2003升级到VS2010,升级的过程较为顺利,虽然项目转换后报出100多个错误,不错主要是以下两个原因:

    1、ACE5.6中的OS.h文件在6.0中被删除,改为OS_main.h,可以看到OS_main.h有下面这段注释:

    解决办法:更改所有OS.h的include。

    2、ACE_OS::lseekACE_OS::openACE_OS::close等函数报错,主要是ACE6.0中的文件IO模式有改变,并且默认不再包含其引用。

    解决办法:在项目中引入以下几个头文件。

    #include <ace/OS_NS_string.h>
    #include <ace/OS_NS_stdio.h>
    #include <ace/FILE_Addr.h>
    #include <ace/FILE_Connector.h>
    #include <ace/FILE_IO.h>
    #include <ace/OS_NS_sys_stat.h>
    #include <ace/OS_NS_unistd.h>
    #include <ace/OS_NS_fcntl.h>
    

     


    记录,为更好的自己!

  • 相关阅读:
    安装Windows Live Writer
    CSS实现鼠标滑过表格变色
    简单实用TAB选项卡,支持单页面多个调用
    在asp:Repeater中的label中分类绑定值时用asp:Repeater的ItemDataBound方法
    在asp:Repeater中的asp:LinkButton中按Id删除对应行的数据时用asp:Repeater的ItemCommand方法
    密码请设为616位字母或数字的检查
    List 和 IList的区别
    取得前九条之后的数据
    对List(IList)集合作求和,最大(小)值操作
    验证码验证
  • 原文地址:https://www.cnblogs.com/ym123/p/4277256.html
Copyright © 2011-2022 走看看