1. 將ACE分發(fā)包界壓縮到一個(gè)目錄中,這將在那個(gè)目錄中生成一個(gè)包含ACE的目錄ACE_wrappers。接下來(lái)的步驟中假設(shè)ACE分發(fā)包被解壓縮到ACE_ROOT=C:\ACE_wrappers中,因此ACE將會(huì)存在于ACE_ROOT\ace目錄中。
2. 在ACE_ROOT\ace目錄中創(chuàng)建一個(gè)文件,命名為config.h,其內(nèi)容為:
#include ace/config-win32.h
3. 在VC++中加載ACE的工程文件(ACE_ROOT\ace\ace.dsw)
4. 每個(gè)工程都會(huì)包含多個(gè)配置,這些配置是Debug/Release, MFC/Non-MFCh和Static/Dynamic庫(kù)版本等選項(xiàng)的混合。確定你所需要的構(gòu)造(例如,調(diào)試代碼需要ACE的調(diào)試版本)。所有這些不同的配置可以為你提供一些便利,你可以或者采用不同的模式以構(gòu)造不同配置的應(yīng)用,或者通過(guò)改變ace\config.h來(lái)改變?cè)贜T上的不同配置。
注意:如果你使用動(dòng)態(tài)連接,請(qǐng)保證ACE_ROOT\bin被添加到你的path環(huán)境變量中,否則你將在運(yùn)行程序的時(shí)候碰到尋找ace.dll或者aced.dll的問(wèn)題。
5. 如果你在Windows NT或者Windows 2k上構(gòu)建ACE,你可以馬上開(kāi)始構(gòu)造她而不需任何改變,如果你在Windows 9x/me上構(gòu)建,那么你必須在
ACE_ROOT\ace\config.h.的#include塊之前添加一行:
#define ACE_HAS_WINNT4 0
這將在ACE中移掉一些WinNT/Win2K中特有的代碼。
6. 如果你希望使用MSVC自帶的標(biāo)準(zhǔn)C++頭文件(C++ Standard Draft 2種定義的iostream,cstdio…..),則應(yīng)該在
ACE_ROOT\ace\config.h.的#include塊之前添加一行:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
7. 如果需要和MFC一起使用,增加如下定義到你的config.h文件中,注意,如果你想使用spawn一個(gè)新的線程,則必須保證使用THR_USE_AFX標(biāo)志來(lái)spawn線程。
#define ACE_HAS_MFC 1
?? 注:我使用該宏編譯ACE時(shí)不能通過(guò),有知道的朋友請(qǐng)賜教。
8. 如果要構(gòu)建ACE的靜態(tài)版本,則需要在config.h中定義ACE_AS_STATIC_LIBS,此宏在那些希望使用ACE的靜態(tài)版本的應(yīng)用工程中也必須定義。
作為一個(gè)可選項(xiàng),你可以在
#include statement in ACE_ROOT\ace\config.h.之前添加一行:
#define ACE_NO_INLINE
來(lái)取消函數(shù)內(nèi)聯(lián)從而減小靜態(tài)庫(kù)(和你的運(yùn)行碼)的大小。
9. ACE DLL和LIB庫(kù)的命名規(guī)則:
我們使用如下的規(guī)則明明使用MSVC的ACE的DLL和LIB文件。
Library/DLL name + (是靜態(tài)庫(kù)嗎 ? s : ) + (包含調(diào)試信息 ? d : ) + {.dll|.lib}
在MSVC環(huán)境中使用ACE的更多信息可以在這里找到。
將ACE與VC6集成在一起
一.打開(kāi) Tools>Options>Directories
加入以下內(nèi)容:
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 到系統(tǒng)環(huán)境變量 path中
在MFC程序中使用時(shí),應(yīng)該在InitInstance()中添加:
WSDATA wsData;
WORD VerRequested = MAKEWORD(2,2);
WSAStarup(VerRequested,&wsData)