C++网络开发包ACE环境的配置与调试

原创 2004年05月01日 21:24:00

ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。
估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。

我的系统环境是:Win2k pro(sp4)、VC6.0 (sp5)

过一阵,我的主页上要开论坛,并设VC专区,欢迎大家上去交流
http://www.liufei.com


一、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_wrappers/ace目录下新建文件config.h加入一行
    #include "ace/config-win32.h"
   
四、编译:用VC6.0打开D:/ACE_wrappers/ace/ace.dsw
    左侧显示    ACE DLL classes
               ACE LIB classes
    或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置
        “编译”,“重建全部”(或任一,如ACE DLL - Win32 MFC Debug)
        此过程可能持续半小时至一个小时不等
    或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置
        此过程可能持续二至四个钟头
       
    产生的.lib文件位于D:/ACE_wrappers/ace/下,
    产生的.dll文件位于D:/ACE_wrappers/bin/下
   
   
    同样打开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/tests/tests.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_wrappers/ace
                       
   
                       
    编译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>/n?));
        将?改为"
       
    4、无法找到动态链接库aced.dll于指定的路径
        为系统变量PATH加上D:/ACE_wrappers/bin
       
       
       
    静态包含:
       工程-设置-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

ACE C++网络编程开发包

ACE C++网络编程开发包 分类: C/C++2007-12-05 23:12 4845人阅读 评论(0) 收藏 举报 c++编程网络preprocessordllgenerat...
  • oMingZi12345678
  • oMingZi12345678
  • 2014年05月06日 14:13
  • 626

C++网络编程 卷1 运用ACE和模式消除复杂性——笔记1

第0篇 0.3.1 面向对象中间件层 1、常见面向对象中间件体系结构: 1)主机基础设施中间件:对并发和ipc机制封装,如JavaPackage、ACE 2)分布式中间件:扩充1),使一些网络编程任务...
  • kaci_csdn
  • kaci_csdn
  • 2016年09月14日 13:45
  • 1064

在python环境下安装开发包

1、首先保证自己的机器上已经安装python环境 2、下载符合自己python开发环境的...
  • dxh0907070012
  • dxh0907070012
  • 2014年04月17日 22:48
  • 2000

基于ACE设计一个c++网络游戏服务器框架引擎

利用闲暇时间,我正在开发一个网络游戏服务器引擎,取名叫gabriel, 代表圣经里的一个天使,中文名叫加百列。加百列在圣经中是一个大天使长,他负责将上 帝的话语带到世间,并晓谕诸位先知,帮助世人明白上...
  • lcabcdefg
  • lcabcdefg
  • 2014年01月13日 15:00
  • 2637

linux下c++编程环境搭建,运行过程以及调试

原文地址::http://my.oschina.net/hnuweiwei/blog/227276 相关文章 1、  linux环境下的c++编程----http://blog.cs...
  • xqhrs232
  • xqhrs232
  • 2016年05月03日 22:17
  • 623

ACE,一个C++的框架

ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心...
  • fuyuehua22
  • fuyuehua22
  • 2014年01月05日 17:57
  • 4227

C++ACE实现通用的服务器C/S架构通信程序

转载自 http://peirenlei.iteye.com/blog/305043C++ACE实现通用的服务器C/S架构通信程序ACE自适配通信环境(ADAPTIVE Communication E...
  • chinayaosir
  • chinayaosir
  • 2013年05月09日 16:24
  • 3985

PPAPI开发之路(一)环境配置

前言:本文在已有博文的基础上根据自身需要进行一定的修改补充,感谢原文作者。 在这附上参考文章链接:http://www.cnblogs.com/snowyying/p/5458765.html 当前...
  • y601500359
  • y601500359
  • 2017年05月31日 18:17
  • 2898

使用c++开发excel插件(第1章 准备知识)

http://blog.csdn.net/wxy6285/article/details/3255424 我们目前最常见的几个excel的版本是Excel 97/2000/2002/2003...
  • cjsycyl
  • cjsycyl
  • 2014年11月26日 17:11
  • 1666

业内性能最高、最稳定的Json SDK开发包

1   概述 本文档适用于C语言开发人员,文档详细讲述Json解析器SDK中每个函数的 用法以及源码示例。   2    Json介绍 参考相关文档。   3    Json 解析器S...
  • freeland008
  • freeland008
  • 2017年05月04日 18:06
  • 203
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++网络开发包ACE环境的配置与调试
举报原因:
原因补充:

(最多只允许输入30个字)