ACE的安装使用(不是ACE音乐格式,是网络开发包)

什么是ACE?
  ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade
(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务。据推测在新的C++Builder中,将有可能支持和采用该FrameWork。
    ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE
还使系统的配置和重配置得以自动化。
ACE的好处
  在ACE组件的帮助下,很容易在一种OS平台上编写并发网络应用,然后快速地将它们移植到各种其他的OS
平台上。ACE的设计使用了许多可提高软件质量的关键模式,这些质量因素包括通信软件灵活性、可扩展性、可复用性和模块性。ACE经仔细设计,支持广泛的应用服务质量(QoS)需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能,以及实时应用的可预测性。ACETAO被设计为能良好地协同工作,以提供全面的中间件解决方案,是CORBA的开发源码、遵循标准的实现
ACE的安装:
  笔者只在C++builder下功能安装,在VC下没有使用过!不过我想和CB下差不多。在CB下:
    1、将下载的ACE包解压到:c:/ace_warappers,在c:/ace_warappers/ace目录下建立一个config.h文件,在文件里加入:#include "ace/config-win32.h"
(如果在98/me下安装,要加上#define ACE_HAS_WINNT4 0)
  2、开一个Dos窗口,设置环境变量:
                      set ACE_ROOT=C:/ACE_wrappers
                      set BCBVER=6
笔者使用的的BCB 6.0,所以设置为BCBVER=6
    3、在console中进入:C:/ACE_wrappers/ace
        键入:make -f Makefile.bor 编译ACE,如果不出错的话,你就可以在CB下使用ACE了,当然,在CB下编译时可能不能找开相应的Dll,你将ACE.b.lib加入到工程时里就可以了。
  4、编译tests,不是必要的: 进入:ACE_ROOT/tests
    make -f Makefile.bor
   成功的话,你就可以:run_tests.bat bor来运行网才编译的tests了。

使用时记得在CB的option/directory里设置相应的头文件路径!然后在工程中就可以加入头文件,使用ACE的库了!你也可以先看看它息带的examples.相信它的跨平台及高性能会吸引你的!
在VC下的安装我就不多说了,ACE的解压目录里有个ACE_install.htm文件,里面有详细说明(在其它操作系统及开发平台的介绍都有,你可以参考),相信难不到你!
ACE发展已经有多年了,如些优秀的东西在国内很少有人知道,真是....



一、ACE官方主页:
http://www.cs.wustl.edu/~schmidt/ACE.html
    下载地址:http://deuce.doc.wustl.edu/Download.html
   
    我下载的是Latest Beta Kit中的ACE.zip(Latest Release中的压缩包好像有问题,我有WinRAR3.30解压缩报错)

二、解压缩后放在D盘
    D:ACE_wrappers

三、在D:ACE_wrappersace目录下新建文件config.h加入一行
    #include "ace/config-win32.h"
   
四、编译:用VC6.0打开D:ACE_wrappersaceace.dsw
    左侧显示    ACE DLL classes
               ACE LIB classes
    或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置
        “编译”,“重建全部”(或任一,如ACE DLL - Win32 MFC Debug)
        此过程可能持续半小时至一个小时不等
    或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置
        此过程可能持续二至四个钟头
       
    产生的.lib文件位于D:ACE_wrappersace下,
    产生的.dll文件位于D:ACE_wrappersin下
   
   
    同样打开ace_static.dsw
    编译
    ACEs.lib
    ACEsd.lib
    ACE_RMCasts.lib
    ACE_RMCastsd.lib
    TMCasts.lib
    TMCastsd.lib

    ACE生成的dll和lib文件的命名规则:(d = debug,s = static)

    debug - aced.lib、debug+static - acesd.lib、release - ace.lib、 release+static - aces.lib


五、样例程序的编译
    用VC打开D:ACE_wrappers ests ests.dsw
    “编译”,“批构建”
   
六、自写程序的工程配置
   
    中篇:ACE程序员教程.pdf中的样例程序:
    网址:
http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/guide-tutorials.html
   
    将网页上的原代码复制到一新建文件,并命名为server.cpp
    用VC打开,编译,重建全部,弹出对话框,“This build command require ...“,点”是“
   
    会出现以下错误
   
    如果有“Cannot open include file: 'ace/SOCK_Acceptor.h': No such file or directory”
    工程-设置-C/C++: Preprocessor,附加包含路径:D:/ACE_wrappers
   
    如果有“ You must link against multi-threaded libraries when using ACE (check your project settings)”
    工程-设置-C/C++: Code Generation - Use run-time library : Debug Multithreaded Dll
   
    如果有“error C2065: 'ACE_ERROR' : undeclared identifier”
            error C2065: 'ACE_DEBUG' : undeclared identifier
    #include "ace/Log_Msg.h"

    error C4716: 'ace_main_i' : must return a value
        在main中加入
            return 0;
   
    “error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl”
    工程-设置-Link-Input: 对象/库模块:添加aced.lib                         附加库路径:D:ACE_wrappersace
                       
   
                       
    编译client中遇到的问题
    1、error C2039: 'sprintf' : is not a member of 'ACE_OS'
       
        #include "ace/OS_NS_stdio.h"
       
    2、error C2039: 'strlen' : is not a member of 'ACE_OS'
   
        #include "ace/OS_NS_string.h"
    3、error C2059: syntax error : '?'
        错误在这一句:  ACE_DEBUG((LM_DEBUG,?Usage egX <hostname> <port_number> ?));
        将?改为"
       
    4、无法找到动态链接库aced.dll于指定的路径
        为系统变量PATH加上D:ACE_wrappersin
       
       
       
    静态包含:
       工程-设置-C/C++-预处理程序定义中加入 ,ACE_AS_STATIC_LIBS
      
      
例1server编译后生成
    server.exe 16K  serverd.exe 97K     servers.exe 124K serversd.exe 669K
    (servers.exe较适合发布)
   
例2 client编译后生成
    client.exe 16K  clientd.exe 97K     clients.exe 124K clientsd.exe 669K
   (clients.exe较适合发布)
   
    测试 clients 127.0.0.1 1919
        servers 1919

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值