ACE在VS2005下的配置

1. 下载ACE库文件:
ACE-5.8.zip

2. 解压缩到指定目录:
E:\ACE_wrappers

3. 添加config.h文件:
创建config.h文件,保存到E:\ACE_wrappers\ace目录中,其内容如下:
#ifndef _ACE_CONFIG_H_
#define _ACE_CONFIG_H_

#define ACE_HAS_STANDARD_CPP_LIBRARY    1    // 可使用标准C库

#include "ace/config-win32.h"                // 对应的Win32系统配置

#endif

4. 使用VS2005编译ACE库:
使用VS2005打开ACE_vc8.sln,分别以Debug和Release方式编译连接生成库文件,经过一段时间,在E:\ACE_wrappers\lib目录下可以看到其中有4个文件:ACE.lib,ACEd.lib,ACE.dll,ACEd.dll。

5. 设置环境变量:
创建系统环境变量:
ACE_ROOT=E:\ACE_wrappers
添加路径到Path环境变量最后:
%ACE_ROOT%\lib;

6. 配置VS2005路径:
【工具】->【选项】->【项目和解决方案】->【VC++ 目录】->【包含文件:$(ACE_ROOT)】->【库文件:$(ACE_ROOT)\lib】->【确定】

7. 创建测试工程:
【项目】->【属性】->【配置属性】->【C/C++】->【代码生成】->【运行时库】
如果是【多线程(/MT)】则:【链接器】->【输入】->【附加依赖项:ACE.lib
如果是【多线程调试(/MTd)】则:【链接器】->【输入】->【附加依赖项:ACEd.lib
【项目】->【属性】->【配置属性】->【C/C++】->【预处理器】->【预处理器定义】添加:
WIN32
_CRT_SECURE_NO_DEPRECATE
_SCL_SECURE_NO_DEPRECATE

8. 编写测试代码:
#include <iostream>

#include <ace/Log_Msg.h>

int ACE_TMAIN(int argc, char * argv[])
{
    ACE_DEBUG((LM_DEBUG,ACE_TEXT("HelloWorld!\n")));

    return 0;
}

9. 运行结果:
HelloWorld!
请按任意键继续. . .

10. 注意事项:
(1)如果使用ACE静态库的话,编译结束后添加宏定义ACE_AS_STATIC_LIBS到config.h中,否则以后的工程都要加这个宏。

(2)ACE项目的字符集设置是“未设置”,而VS2005的C++项目默认字符集是“使用 Unicode 字符集”,如果用到了ACE链接库时需要将字符集改为“未设置”(在【项目】->【属性】->【配置属性】->【项目默认值】->【字符集】中配置),否则可能出现链接错误。

(3)支持Unicode的ACE编译:
编译前在config.h中多添加如下两行,并且将项目默认字符集改为“使用 Unicode 字符集”。
#define ACE_USE_WCHAR
#define ACE_HAS_WCHAR
在Windows平台下,如果没有定义如上两个宏,ACE会自动将main函数重定义,并主动替你把 ACE::init() 和 ACE::fini() 调用好。添加这两个宏后,需要在main函数中手动调用。
main 函数重定义这一行为不能保证在所有平台和环境下都正常运作(如使用MFC时),其实不管如何,不妨在 main 函数的开头和结尾分别再调用一次 ACE::init() 和 ACE::fini()。 ACE::init() 和 ACE::fini() 里面都有嵌套层次计数机制,因此只要它们能够保证成对出现,并且不出现交叉嵌套,多调用一遍并不会出现任何问题。

11.调试可能出现的问题
项目:error PRJ003:生成"cmd.exe"时出错。
解决方法:
直接在VS2005中进行入校设置:
tools=> Options => Projects and Solutions -> VC++ Directories Page
把$(PATH)改成:$(SystemRoot)\System32;$(SystemRoot);$(SystemRoot)\System32\wbem
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值