ACE在VC中的配置攻略

转自:http://bamboowind.bokee.com/990657.html

作者: Bamboowind

 

昨天郁闷了一个晚上,还是没弄清楚一个错误的原因,今天反复看那个错误,然后复制下来发给了simon,就这一刹那,发现了一个原因:我没在main()的括号里面写参数。


一、ACE官方主页:http://www.cs.wustl.edu/~schmidt/ACE.html
    下载地址:http://deuce.doc.wustl.edu/Download.html
二、解压缩后放在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


五、自写程序的工程配置
   
    中篇: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

如果遇到这个问题:main.obj : error LNK2001: unresolved external symbol "int __cdecl ace_main_i(int,char * * const)" (?ace_main_i@@YAHHQAPAD@Z)        表示你的main函数后面的括号里面是空的,应该这么写:int main(int argc,char** argv)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值