青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 60  文章 - 5  trackbacks - 0
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(2)

隨筆分類(42)

隨筆檔案(60)

文章檔案(2)

我收藏的博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

ACE的構建(VC++6.0環境)
Windows下ACE的構建
1. 將ACE-5.5.zip解壓到所需的安裝目錄,此處以E:\為例,解壓后形成ACE_wrappers文件夾,因此ACE將會存在于ACE_wrappers\ace目錄中。ACE_ROOT=E:\ACE_wrappers。
2. 在系統中新建ACE_ROOT環境變量,值設為 E:\ACE_wrappers。具體設置為:我的電腦->屬性->高級->環境變量->新建
3. 在E:\ACE_wrappers\ace目錄中創建一個頭文件,命名為config.h,其內容為:
#include "ace/config-win32.h"(必選項)
#define ACE_HAS_STANDARD_CPP_LIBRARY 1 (MSVC自帶的標準C++頭文件)
#define ACE_HAS_MFC 1(與MFC一起使用)
#define ACE_NO_INLINE(取消函數內聯從而減小靜態庫和運行碼的大小)
#define ACE_AS_STATIC_LIBS(構建ACE的靜態版本)
#define ACE_HAS_WINNT4 0(在Windows 9x/me上構建所需,在ACE中移掉一些WinNT/Win2K中特有的代碼)
以上只需要添加前兩項就可以了。
4. 在VC++中加載ACE的工程文件(ACE_ROOT \ace\ace.dsw),在release和debug兩種編譯方式下進行編譯,得到相應的庫文件(ACE.dll、ACE.lib 和 ACEd.dll、ACEd.lib),其中ACE.dll 、ACE.lib是由release版生成的,ACEd.dll、ACEd.lib是由debug版生成的。具體操作方法:運行VC++,選擇Build ->Batch Build…,將ACE-Win32 Debug和ACE-Win32 Release全部選中,Rebuild All即可。如下圖所示:

按照上面的方法可能只編譯出ACE.dll 、ACE.lib庫文件,具體原因還不詳。按照下面的操作方法進行編譯可以成功生成全部庫文件。具體操作方法:Build->Set Active Configuration…分別選中ACE-Win32 Release進行編譯即可。如下圖所示

同樣打開ace_static.dsw編譯生成ACEs.lib、 ACEsd.lib、ACE_RMCasts.lib、ACE_RMCastsd.lib、TMCasts.lib、TMCastsd.lib

5. 配置ACE環境。 打開VC++6.0,選擇Tools->Options->Directories 加入以下內容:
1) Executable File:E:\ACE_wrappers\bin
2) Include File:E:\ACE_wrappers
3) Library Files:E:\ACE_wrappers\lib
4) Source Files:E:\ACE_wrappers
在編寫程序時要在Project->Settings菜單中進行如下設置:
C/C++選項卡:
Code Generation:選擇多線程版運行時庫(Multithreaded DLL)。
Preprocessor:在“Additional include directories”域中加入$ACE_ROOT。  
Link選項卡:
Input:在“Object/library modules”域中包含適當的ACE庫文件,在“Additional library
path”域中包含ACE庫鏈接文件的路徑。這通常是ACE_ROOT/ace。
其中 DLL debug對應ACEd.lib
    DLL release對應ACE.lib
    Static library debug對應ACEsd.lib
    Static library release對應ACEs.lib
    MFC DLL debug對應ACEmfcd.lib
    MFC DLL release對應ACEmfc.lib
   主要用到以上兩個庫。

6. 在系統環境的變量 path中加入E:\ACE_wrappers\bin,否則在運行程序的時候碰到尋找ace.dll或者aced.dll的問題。
7. 在MFC程序中使用時,應該在InitInstance()中添加:
WSDATA wsData;
WORD VerRequested = MAKEWORD (2, 2);
WSAStarup (VerRequested, &wsData)
注:可以在頭文件中加入如下代碼就不用再手動填加lib庫文件
#ifdef _DEBUG
#pragma comment (lib,"aced.lib")
#else
#pragma comment (lib,"ace.lib")
#endif
8. 在windows下release時有可能報錯,錯誤如下:
error C2039: 'TryEnterCriticalSection' : is not a member of '`global
error C2065: 'TryEnterCriticalSection' : undeclared identifier
解決辦法:
工程 Project-->setting-->C/C++   寫入:_WIN32_WINNT=0x0500
Linux 下ACE的構建
1. 設置環境變量ACE_ROOT,命令如下:
“vi /etc/profile” ,在“export PATH USER….”后加入4行
? ACE_ROOT=/opt/ACE
? export ACE_ROOT
? LD_LIBRARY_PATH=$ACE_ROOT/aceLD_LIBRARY_PATH
? export LD_LIBRARY_PATH
完 成后將/etc/profile執行一次,命令:“chmod 555 /etc/profile”,“/etc/profile”。這樣我們的ACE_ROOT就設置好了,可以用如下命令查看ACE_ROOT是否設置好了: “echo $ACE_ROOT” ,這個時候最好reboot啟動一次linux。
2. 解壓ACE.tar.gz包:
不 要自己手工將ACE.tar.gz包完全解開,特別強調不要完全解開,后面可以看到安裝腳本會給我們解開它的;如果你手工解開全部,安裝腳本將會將你的解 壓縮目錄刪除的!我們要做的事就只是將ACE.tar.gz包中的ACE-install.sh安裝腳本單獨解出來,并對其修改。我們只要這一個文件就可 以。用mkdir建目錄,如/home/my/ACE,然后將你的ACE.tar.gz放在此目錄下(用cp命令拷貝或mv命令移動到此目錄)。注意這個 目錄將是你的一個存放ACE.tar.gz的目錄,安裝腳本會來這個目錄找這個文件的,這個目錄和ACE_ROOT是不一樣的,且ACE- install.sh也提示不要將這兩個目錄設置成同一個目錄。ACE_ROOT將是我們的安裝目標目錄。
3. 從ACE.tar.gz解壓出單個文件ACE-install.sh,命令如下:
“tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”
解 好后,會出來一個新的子目錄“ACE_wrappers”。此時可以先將ACE-install.sh移到外面的目錄來:“mv /ACE_wrappers/ACE-install.sh .” “.”代表當前目錄。當然ACE-install.sh在什么路徑下是沒什么影響的,因為我們要對ACE-install.sh的內容進行修改的,里面有 很多路徑要修改。現在在/home/my/ACE就有了ACE-install.sh,我們現在用vi對其進行修改,修改前自己可以先備份一個。命令: “cp ACE-install.sh ACE-install.sh.bak”,“vi ACE-install.sh”先找到“MY_ACEDIR=${HOME}/aceconfig”,將其改成“MY_ACEDIR= /home/my/ACE”,就是改成我們自己建的、放有ACE.tar.gz文件的目錄,之后去掉前面的注釋“#”號。接著在下面一點,找到 “MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,將其修改成“MY_ACE_CONFIG=config- linux.h”,即改成linux下的配置文件。繼續改,找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++. GNU”,將其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。這個是各種操作系統平臺下的GNU宏文件設置。文件 修改完畢,保存退出“:wq”。
4. 安裝ACE:
此時應該是在/home/my/ACE目錄下,我們執行: h./ACE-install.sh
此 后將是較長時間的解包、編譯等待時間。這個過程將不會出現任何錯誤,因為安裝腳本將為我們做很多事情,如:生成config.h,生成 platform_macros.GNU。我們不需要按ACE-install.html中說的手工改東西:不用做連接“ln -s config-sunos5-sunc++-4.x.h config.h”,安裝腳本會給我們做好;(題外話:Windows中沒有文件連接這一說,所以要自己生成一個config.h文件,再在它的里面加一 句話“#include "ace/config-win32.h"”。)
如果編譯中出現錯誤,如“../apps/gperf”等,請編輯$ACE_ROOT/apps下的Makefile,將其中的有關“gperf”的部分注釋掉,這個東西只是一個例子,可以不去編譯它。
強調一下,用ACE-install.sh來安裝,會編譯ACE、tests、apps等。最后會生成libACE.so及tests、apps下也會出來很多經過編譯的文件。
當然如果你只是下載了ACE.tar.gz這樣的單個包來安裝,你可以手工改文件,再make,因為只編譯ACE,工作就少了很多,手工做還可以接受。
ACE學習資料
1. ACE 程序員指南:網絡與系統編程的實用設計模式 網絡與系統編程的實用設計模式   ACE Programmer's Guide practical Design Patterns for Network and Systems Programming
(美)Stephen D. Huston,(美)James CE Johnson,(美)Umar Syyid著
馬維達 譯 中國電力出版社
2. C++網絡編程 卷1:運用ACE和模式消除復雜性
C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns
[美]Douglas C.Schmidt,Stephen D.Huston /著 [美]Douglas C.Schmidt,Stephen D.Huston 著,於春景 譯   華中科技大學出版社
3. C++網絡編程,卷2 基于ACE和框架的系統化復用
C++ network Programming, Volume 2 Systematic Reuse with ACE and Frameworks
Douglas C.Schmidt, Stephn D.Huston /著   | 馬維達 譯 電子工業出版社
4. ACE的官方網站  http://www.cs.wustl.edu/~schmidt/ACE.html
5. 馬維達的主頁 http://www.flyingdonkey.com/
6. RIVERACE公司 http://www.riverace.com
7. 灰狐          http://www.huihoo.com/
8.     ACE類庫    http://dev.csdn.net/article/40/40700.shtm


常見錯誤
錯誤1:
“Cannot open include file: ace/SOCK_Acceptor.h: No such file        or directory”
解決方法:
Project->settings->C/C++: Preprocessor的Additional include directories中加入$ACE_ROOT,如E:/ACE_wrappers
錯誤2:
“You must link against multi-threaded libraries when using ACE (check your project settings)”
解決方法:
Project->settings->C/C++: Code Generation 的Use run-time library : Debug Multithreaded Dll
錯誤3:
“error C2065: ACE_ERROR : undeclared identifier”
“error C2065: ACE_DEBUG : undeclared identifier”
解決方法:
在原馬中加入#include ace/Log_Msg.h
錯誤4:“error C4716: ace_main_i : must return a value”
解決方法:
在main中加入return 0;
錯誤5:
“error LNK2001: unresolved external symbol __declspec(dllimport) int __cdecl”
解決方法:
Project->settings->Link->Input: Object/library Modules加入aced.lib ,Additional Library Path中加入$ACE_ROOT\ace,如E:\ACE_wrappers\ace
編譯client中遇到的問題:
錯誤6:
error C2039: sprintf : is not a member of ACE_OS
解決方法:#include ace/OS_NS_stdio.h
錯誤7:error C2039: strlen : is not a member of ACE_OS
解決方法:#include ace/OS_NS_string.h
錯誤8:無法找到動態鏈接庫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


如果編譯器支持64位,通過什么宏定義來區分64位還是32位阿?
答:#define ver ((2>>31)>0?64:32)
-------------------------------------------------------
給ACE初哥初妹的話

給ACE初哥初妹的話

version 0.1.0 Stone jIang 2006-11-6

下面列出了初學ACE必要的基礎知識,希望能給初學ACE的朋友們一點幫助。特加上版本號,這是為了歡迎批判,補充和修訂。

1. C++/OOP (有一部分高手是C語言背景根深蒂固的,思考問題不是面向對象,這類人學ACE需要先補補OOP思想)

2. Design Pattern (ACE不僅僅是類庫,而是通過模式協同在一起的一系列相關的類,如果對設計模式熟悉,那么會用助于學習ACE)

3. Framework (Framework應該還不正式,相似的詞還可以是architecture,不管用啥詞語,所要指出的是,ACE不僅僅是類庫,更是通過模式組合在一 起相互協作的類形成的半成品。框架有別于類庫,后者通常是被動的被程序員寫的代碼調用,而框架則往往主動地調用用戶實現的接口,即著名的好萊塢原則—— Don't call me , I will call you)

4.Linux(我是Linux初不者,但自從我開始進入Linux 編程的時候,我就發現,ACE許多精華源自Linux,以前對ACE理解有限,不知道為什么這樣,其實在Linux中能找到答案,ACE里閃爍著Linux的智慧。)

5. Richard Stevens. (英年早逝的Richard,應該是Douglas的良師益友,他的著作影響了Douglas,也就影響著ACE,這里要說的是TCP/IP Illustrated ,其實Richard其他著作,像APUE都是大滋大補的)

6. 沒有6了。如果你認為有,一定告訴我。

posted on 2009-05-20 17:15 黃劍父 閱讀(549) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合色激情五月| 亚洲欧美日韩精品久久亚洲区| 欧美中文字幕在线播放| 一区二区日韩欧美| 国产精品视频yy9099| 午夜精品美女自拍福到在线 | 亚洲欧美在线一区二区| 亚洲一级免费视频| 国产亚洲在线| 亚洲电影毛片| 欧美三区在线观看| 午夜欧美大尺度福利影院在线看| 亚洲一区二区高清视频| 国产一区二区三区久久久久久久久| 久久久7777| 欧美 日韩 国产 一区| 亚洲视频福利| 欧美专区亚洲专区| 亚洲精品国精品久久99热| 一区二区三区国产精华| 国产精品一香蕉国产线看观看 | 一本色道久久| 亚洲欧美激情视频| 亚洲高清视频一区二区| 夜夜爽av福利精品导航| 国产一区二区成人久久免费影院| 欧美成年网站| 欧美视频一区二区| 欧美成人午夜免费视在线看片 | 久久日韩精品| 亚洲在线视频网站| 鲁大师成人一区二区三区| 亚洲女同在线| 免费视频最近日韩| 欧美在线免费观看亚洲| 欧美激情一区二区三区蜜桃视频| 久久成人精品无人区| 欧美精品成人| 欧美成人按摩| 国产一区白浆| 中文久久精品| 日韩亚洲视频| 美女国产一区| 久久久久一区| 国产欧美一区在线| 一区二区欧美在线观看| 亚洲国产一区二区在线| 久久高清免费观看| 久久精品视频在线观看| 欧美系列精品| 一区二区三区精密机械公司 | 久久综合九九| 国产精品在线看| 夜夜爽av福利精品导航 | 亚洲视频国产视频| 欧美精品一区二区三区久久久竹菊 | 麻豆国产精品777777在线 | 国产精品va在线播放| 欧美一区二区视频97| 蜜臀久久99精品久久久久久9| 亚洲网在线观看| 久久天天躁狠狠躁夜夜av| 亚洲一区二区三区国产| 蜜桃精品久久久久久久免费影院| 性欧美在线看片a免费观看| 欧美福利精品| 久久影视精品| 国产欧美一区二区三区在线老狼| 亚洲美女淫视频| 亚洲精品一二三| 在线一区视频| 99精品国产99久久久久久福利| 久久精品亚洲乱码伦伦中文 | 亚洲一区二区三区免费观看| 一区二区三区 在线观看视频 | 亚洲国产精品成人一区二区 | 亚洲一区二区三区高清| 一区二区高清在线| 欧美freesex交免费视频| 久久福利精品| 国产午夜精品一区理论片飘花 | 亚洲国产成人精品久久| 久久久在线视频| 久久午夜激情| 国产综合婷婷| 久久久99精品免费观看不卡| 久久精品一区中文字幕| 国产欧美va欧美va香蕉在| 在线一区二区三区四区| 亚洲在线视频网站| 国产精品看片资源| 亚洲欧美日韩国产| 午夜精品久久久久久久久| 欧美午夜在线| 亚洲欧美在线播放| 久久精品国产99国产精品| 国产欧美日韩视频| 久久av红桃一区二区小说| 玖玖玖国产精品| 在线观看国产一区二区| 欧美大香线蕉线伊人久久国产精品| 欧美激情按摩| 在线天堂一区av电影| 欧美午夜电影在线观看| 91久久国产精品91久久性色| 亚洲欧洲视频在线| 欧美性猛交99久久久久99按摩| 亚洲一区二区免费在线| 久久九九久精品国产免费直播 | 蜜桃久久精品乱码一区二区| 亚洲福利视频网| 亚洲一区二区三区四区五区黄| 国产精品自拍网站| 久久视频在线视频| 99在线精品视频在线观看| 久久se精品一区二区| 亚洲国产日韩欧美| 国产精品久久97| 欧美一区二区三区视频免费播放| 亚洲精品一区二区三区樱花| 欧美一区二区三区视频| 在线观看日韩www视频免费| 欧美日韩精品免费观看视一区二区 | 精品51国产黑色丝袜高跟鞋| 免费不卡亚洲欧美| 亚洲男人av电影| 亚洲福利一区| 久久久精品2019中文字幕神马| 亚洲精品日韩激情在线电影 | 欧美一区二区三区四区夜夜大片| 欧美激情91| 久久精品人人做人人爽电影蜜月| 亚洲精品激情| 国产午夜精品理论片a级大结局 | 亚洲午夜一区| 亚洲第一成人在线| 久久aⅴ国产欧美74aaa| 一本综合久久| 亚洲激情在线观看视频免费| 国产欧美午夜| 欧美精品七区| 欧美日韩精品免费| 美女黄网久久| 久久久.com| 亚洲欧美日韩在线| 亚洲一二三区视频在线观看| 亚洲国产高清在线观看视频| 久久中文字幕一区二区三区| 午夜精品一区二区在线观看 | 麻豆精品视频在线观看| 亚洲深爱激情| 美日韩丰满少妇在线观看| 久久免费视频网| 欧美伊人久久久久久午夜久久久久 | 久久精品国产91精品亚洲| 亚洲一区二区成人| 在线一区日本视频| 国产精品99久久久久久宅男| 亚洲高清视频一区二区| 亚洲国产91| 亚洲精品免费在线播放| 亚洲国产成人不卡| 亚洲高清中文字幕| 91久久久久久久久久久久久| 亚洲成人资源| 欧美激情亚洲一区| 亚洲国内自拍| 日韩性生活视频| 一卡二卡3卡四卡高清精品视频| 91久久亚洲| 最新亚洲激情| 午夜影视日本亚洲欧洲精品| 亚洲欧美一区二区激情| 性欧美暴力猛交69hd| 欧美一区2区三区4区公司二百| 欧美一区二区啪啪| 久久久精品一区二区三区| 久久婷婷国产综合精品青草| 美女脱光内衣内裤视频久久影院| 母乳一区在线观看| 男人天堂欧美日韩| 久久激情视频久久| 欧美视频三区在线播放| 国产乱子伦一区二区三区国色天香 | 亚洲国产欧美不卡在线观看| 亚洲精品国产精品国自产观看| 亚洲美女网站| 欧美一级黄色录像| 老司机一区二区三区| 欧美精彩视频一区二区三区| 欧美网站在线| 国产一区二区三区不卡在线观看| 亚洲三级免费电影| 香蕉久久a毛片| 嫩草伊人久久精品少妇av杨幂| 亚洲狠狠婷婷| 亚洲欧美日韩国产成人精品影院| 久久综合综合久久综合| 欧美日韩在线免费| 激情婷婷亚洲|