声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1928|回复: 3

[C/C++] 头文件怪事

[复制链接]
发表于 2008-5-27 19:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
#include "ace/Log_Msg.h"
#include "ace/Malloc_Base.h"
#include "ace/Guard_T.h"
#include "ace/OS_NS_string.h"
上面的头文件是什么呀?怎么找不到(vc6.0)
回复
分享到:

使用道具 举报

发表于 2008-5-29 13:29 | 显示全部楼层
在网上帮你找的资料,你应该是没有安装ACE安装包。

ACE安装(VC/LINUX)  
 ACE安装  作者:菩提
ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)构架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++包装外观(Wrapper Façade)和构架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。

ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。

ACE正在进行持续的改进。Riverace公司(http://www.riverace.com)采用开放源码商业模式对ACE进行商业支持。此外,ACE开发组的许多成员目前正在进行The ACE ORB(TAO,http://www.cs.wustl.edu/~schmidt/TAO.html)的开发工作。

可以从以下地址下载ACE的安装包:http://deuce.doc.wustl.edu/Download.html。这里提供有ACE的多个版本的集成包,这里以ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz为例。

  

VC下的安装

1.解压后放在D盘(或者自定义也可)

D:\ACE_wrappers

2.在D:\ACE_wrappers\ace目录下新建文件config.h加入一行
    #i nclude "ace/config-win32.h"

3.编译:用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\下

4.为系统变量PATH加上D:\ACE_wrappers\bin   

VC下的ACE使用

1.建立工程

2.修改配置

project-->settings…-->C/C++ àCategory:Code Generation àUse run-time library设置为“Debug Multithreaded DLL”

project-->settings…-->C/C++ àCategory:Preprocessor àAdditional include directories中添加D:\ACE_wrappers

project-->settings…àLink àCategory:Input àObject/library modules:中添加aced.lib,并在下面的Additional library path里面添加路径D:\ACE_wrappers\ace

3.新建文件编辑代码

4.编译运行

5.若不能编译release版本,需在工程首处定义宏 _WIN32_WINNT为0x0400

  

  

Linux下的安装

1   先设置ACE_ROOT环境,命令:  

   “vi /etc/profile”  

   在其中加入4行  

   ACE_ROOT=/opt/ACE  

   export ACE_ROOT  

   LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH  

   export LD_LIBRARY_PATH

可以加在“export PATH USER….”后的。完成后将/etc/profile执行一次,命令:  

         “/etc/profile”  

这样我们的ACE_ROOT就设置好了,可以用如下命令查看ACE_ROOT是否设置好了:  

                  “echo $ACE_ROOT”  

这个时候最好reboot启动一次linux。

2.假设安装文件的位置如下:/home/my/ACE/ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz

从其中解压出单个文件ACE-install.sh:  

“tar –zxvf ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz ACE_wrappers/ACE-install.sh”

解好后,会出来一个新的子目录“ACE_wrappers”。修改其中的ACE-install.sh文件的如下选项:

(1)        先找到“MY_ACEDIR=${HOME}/aceconfig”,将其改成“MY_ACEDIR=/home/my/ACE”,就是改成我们自己建的、放有ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz文件的目录,之后去掉前面的注释“#”号。

(2)        找到“MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,将其修改成“MY_ACE_CONFIG=config-linux.h”。

(3)        找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU”,将其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。

  保存。

3.运行该文件

./ACE-install.sh

4.将$ACE_ROOT/ace下面的libACE.so.5.4.0拷贝到/lib/目录下。

5.上述编译方法得到的为debug版本,若需获得release版本的,可在$ACE_ROOT/ace目录下重新make,命令:“#make debug=0”.

  

  

Linux下ACE的使用

  Linux下的ACE项目往往需要使用makefile,相关问题参考书上教程或者示例的Makefile文件。也可以使用MW和CMPC工具生成,在此不再累述。


  
作者: 218.18.18.*  2006-5-29 23:13   回复此发言   

--------------------------------------------------------------------------------

2 回复:ACE安装(VC/LINUX)  
安装ACE 选择自 zmxjh 的 Blog  
关键字 安装ACE  
出处  
  
1. 将ACE分发包界压缩到一个目录中,这将在那个目录中生成一个包含ACE的目录ACE_wrappers。接下来的步骤中假设ACE分发包被解压缩到ACE_ROOT=C:\ACE_wrappers中,因此ACE将会存在于ACE_ROOT\ace目录中。


2. 在ACE_ROOT\ace目录中创建一个文件,命名为config.h,其内容为:
#include "ace/config-win32.h"


3. 在VC++中加载ACE的工程文件(ACE_ROOT\ace\ace.dsw)


4. 每个工程都会包含多个配置,这些配置是Debug/Release, MFC/Non-MFCh和Static/Dynamic库版本等选项的混合。确定你所需要的构造(例如,调试代码需要ACE的调试版本)。所有这些不同的配置可以为你提供一些便利,你可以或者采用不同的模式以构造不同配置的应用,或者通过改变ace\config.h来改变在NT上的不同配置。
注意:如果你使用动态连接,请保证ACE_ROOT\bin被添加到你的path环境变量中,否则你将在运行程序的时候碰到寻找ace.dll或者aced.dll的问题。


5. 如果你在Windows NT或者Windows 2k上构建ACE,你可以马上开始构造她而不需任何改变,如果你在Windows 9x/me上构建,那么你必须在
ACE_ROOT\ace\config.h.的#include块之前添加一行:
#define ACE_HAS_WINNT4 0
这将在ACE中移掉一些WinNT/Win2K中特有的代码。


6. 如果你希望使用MSVC自带的标准C++头文件(C++ Standard Draft 2种定义的iostream,cstdio…..),则应该在
ACE_ROOT\ace\config.h.的#include块之前添加一行:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1


7. 如果需要和MFC一起使用,增加如下定义到你的config.h文件中,注意,如果你想使用spawn一个新的线程,则必须保证使用THR_USE_AFX标志来spawn线程。
#define ACE_HAS_MFC 1


?? 注:我使用该宏编译ACE时不能通过,有知道的朋友请赐教。


8. 如果要构建ACE的静态版本,则需要在config.h中定义ACE_AS_STATIC_LIBS,此宏在那些希望使用ACE的静态版本的应用工程中也必须定义。
作为一个可选项,你可以在
#include statement in ACE_ROOT\ace\config.h.之前添加一行:
#define ACE_NO_INLINE
来取消函数内联从而减小静态库(和你的运行码)的大小。


9. ACE DLL和LIB库的命名规则:
我们使用如下的规则明明使用MSVC的ACE的DLL和LIB文件。
"Library/DLL name" + (是静态库吗 ? "s" : "") + (包含调试信息 ? "d" : "") + {".dll"|".lib"}
在MSVC环境中使用ACE的更多信息可以在这里找到。


将ACE与VC6集成在一起

一.打开 Tools>Options>Directories  
加入以下内容:
Executable File:
C:\ACE_wrappers\bin

Include File:
C:\ACE_wrappers\


Library Files:
C:\ACE_wrappers\ACE

Source Files:
C:\ACE_wrappers\


二.加入 C:\ACE_wrappers\bin 到系统环境变量 path中

在MFC程序中使用时,应该在InitInstance()中添加:

WSDATA wsData;
WORD VerRequested = MAKEWORD(2,2);

WSAStarup(VerRequested,&wsData)  

  
作者: 218.18.18.*  2006-5-29 23:33   回复此发言   

--------------------------------------------------------------------------------

3 C++网络开发包ACE环境的配置与调试 qiek(原作)  
C++网络开发包ACE环境的配置与调试 qiek(原作)  
  
关键字 ACE VC 安装 配置 调试 问题 解决  
  


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 ... uide-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
 楼主| 发表于 2008-6-5 08:58 | 显示全部楼层

回复 2楼 的帖子

谢谢您的详尽答复,请问这个安装包能在windows系统下使用吗?
因为我的机子安装的是xp系统
发表于 2008-6-5 09:07 | 显示全部楼层
呵呵,你说呢?VC是谁开发的?
上面都给出了VC的安装方法,当然能在Windows下使用了,在Linux下也可以。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-11 17:38 , Processed in 0.067561 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表