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)

Posted on 2005-12-09 11:20 艾凡赫 阅读(348) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理