ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。一、ACE官方主页:我下载的是LatestBetaKit中的ACE.zip(LatestRelease中的压缩包好像有问题,我有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左侧显示ACEDLLclassesACELIBclasses或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置“编译”,“重建全部”(或任一,如ACEDLL-Win32MFCDebug)此过程可能持续半小时至一个小时不等或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置此过程可能持续二至四个钟头产生的.lib文件位于D:\ACE_wrappers\ace\下,产生的.dll文件位于D:\ACE_wrappers\bin\下同样打开ace_static.dsw编译ACEs.libACEsd.libACE_RMCasts.libACE_RMCastsd.libTMCasts.libTMCastsd.libACE生成的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中的样例程序:网址:将网页上的原代码复制到一新建文件,并命名为server.cpp用VC打开,编译,重建全部,d出对话框,“Thisbuildcommandrequire“,点”是“会出现以下错误如果有“Cannotopenincludefile:'ace/SOCK_Acceptor.h':Nosuchfileordirectory”工程-设置-C/C++:Preprocessor,附加包含路径:D:/ACE_wrappers如果有“Youmustlinkagainstmulti-threadedlibrarieswhenusingACE(checkyourprojectsettings)”工程-设置-C/C++:CodeGeneration-Userun-timelibrary:DebugMultithreadedDll如果有“errorC2065:'ACE_ERROR':undeclaredidentifier”errorC2065:'ACE_DEBUG':undeclaredidentifier#include"ace/Log_Msg.h"errorC4716:'ace_main_i':mustreturnavalue在main中加入return0“errorLNK2001:unresolvedexternalsymbol"__declspec(dllimport)int__cdecl”工程-设置-Link-Input:对象/库模块:添加aced.lib附加库路径:D:\ACE_wrappers\ace编译client中遇到的问题1、errorC2039:'sprintf':isnotamemberof'ACE_OS'#include"ace/OS_NS_stdio.h"2、errorC2039:'strlen':isnotamemberof'ACE_OS'#include"ace/OS_NS_string.h"3、errorC2059:syntaxerror:'?'错误在这一句:ACE_DEBUG((LM_DEBUG,?UsageegX\n?))将?改为"4、无法找到动态链接库aced.dll于指定的路径为系统变量PATH加上D:\ACE_wrappers\bin静态包含:工程-设置-C/C++-预处理程序定义中加入,ACE_AS_STATIC_LIBS例1server编译后生成server.exe16Kserverd.exe97Kservers.exe124Kserversd.exe669K(servers.exe较适合发布)例2client编译后生成client.exe16Kclientd.exe97Kclients.exe124Kclientsd.exe669K(clients.exe较适合发布)测试clients127.0.0.11919servers1919下面是马维达老师写的:(转自huihoo)发表于:3/31/2003-04:24翻译的一点小东西,希望能对大家有帮助。其实也不敢称为是翻译的,水平太烂了,大家将就着看吧:)使用MicrosoftVisualC++在win32平台上生成和安装ACE:注意:关于MSVC5.0和ServicePack3的使用有一些问题,过去一些用户在sp2中使用良好的代码在sp3种却会引发一些问题。感谢Bill的细心查找,这一神秘的问题被解决了。答案?(哦,这儿有一个好答案。。。)这可能是因为有多个版本的sp3较早版本的sp3有一些bug,而后来的版本修正了这些错误,从微软网站上下载的1998年6月16日版本的sp3是一个良好的版本。如果X03-50158是那些拥有sp3的光盘序列号的一部分,那么这些版本也是良好的。但是不管任何版本的sp3,其STL的实现都有错误,详细情况请浏览。感谢BenEng对这些错误的修正。现在的SP4(希望只有一个版本)已经修正了STL中的死锁问题。我们现在将不再积极的支持MSVC4.X以及以前的版本,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.如果你在WindowsNT或者Windows2k上构建ACE,你可以马上开始构造她而不需任何改变,如果你在Windows9x/me上构建,那么你必须在ACE_ROOT\ace\config.h.的#include块之前添加一行:#defineACE_HAS_WINNT40这将在ACE中移掉一些WinNT/Win2K中特有的代码。6.如果你希望使用MSVC自带的标准C++头文件(C++StandardDraft2种定义的iostream,cstdio…..),则应该在ACE_ROOT\ace\config.h.的#include块之前添加一行:#defineACE_HAS_STANDARD_CPP_LIBRARY17.如果需要和MFC一起使用,增加如下定义到你的config.h文件中,注意,如果你想使用spawn一个新的线程,则必须保证使用THR_USE_AFX标志来spawn线程。#defineACE_HAS_MFC1缺省的,ACE工程使用MSVC运行时的动态DLL版本,你也可以选择使用ACE的不关心运行时库的静态(LIB)版本。我们选择仅与动态运行时库连接的原因在于基本上所有的NT机器上都会安装这些库,而我们则可以因此而减小代码的大小。如果你希望ACE与MFC的静态版本连接,则可以在config.h中定义ACE_USES_STATIC_MFC。然而,如果你希望静态的连接所有的库(包括MSVC运行时库),就需要自己修改工程文件了。8.如果要构建ACE的静态版本,则需要在config.h中定义ACE_AS_STATIC_LIBS,此宏在那些希望使用ACE的静态版本的应用工程中也必须定义。作为一个可选项,你可以在#includestatementinACE_ROOT\ace\config.h.之前添加一行:#defineACE_NO_INLINE来取消函数内联从而减小静态库(和你的运行码)的大小。9.ACEDLL和LIB库的命名规则:我们使用如下的规则明明使用MSVC的ACE的DLL和LIB文件。"Library/DLLname"+(是静态库吗?"s":"")+(包含调试信息?"d":"")+{".dll"|".lib"}在MSVC环境中使用ACE的信息可以在这里找到。-----------------------------------------------------------------------一、安装TAO,需要先编译并安装ACE。二、ACE的编译和安装步骤见。如果你英文程度还可以的话,最好直接阅读这两篇文档。说到底,中文文档只是“权宜之计”;汉语并不太适合进行逻辑性的表述。但我还是把其中的一些段落编译如下(VC6.0+ACE-5.2.1+TAO-1.2.1):ACE的编译与安装一般规则ACE中的许多特性可以通过在$ACE_ROOT/ace/config.h中定义一些宏来进行修改。这些宏应该总是在包括针对你的平台的配置文件之前出现。但是,如果你想要取消/重定义在针对特定平台的配置文件中定义的宏,#undef应该在配置文件之后出现。如果你计划在多种平台上编译ACE,你也许需要考虑克隆源码树。步骤:1.将ACE发布文件解压缩到某个目录中,在其中将会创建含有所有文件的ACE_wrappers目录。在下面的步骤中,ACE_wrappers目录将以ACE_ROOT为名来指称。2.在ACE_ROOT\ace目录中创建一个名为config.h的文件,在其中包含:#include“ace/config-win32.h”3.现在加载ACE的项目文件(ACE_ROOT\ace\ace.dsw)。4.其中的每个项目都含有若干不同的配置(可混合Debug/Release、MFC/Non-MFC、Static/Dynamiclibrary版本)。你可以从中选择你所需的配置,或是使用ace/config.h来进行调整。注意:如果你使用动态链接库,在运行使用ACE的程序时,确定你在PATH中包括了ACE_ROOT\bin。5.如果你的系统平台是WinNT或2000,那么无需任何改动你就可以开始编译了。如果是Windows9x/Me,你需要在ACE_ROOT\ace\config.h中的#include语句之前增加:#defineACE_HAS_WINNT406.如果你想要使用MSVC标准C++头(iostream、cstdio……),在ACE_ROOT\ace\config.h中的#include语句之前增加:#defineACE_HAS_STANDARD_CPP_LIBRARY17.要与MFC一起使用ACE,再增加下面的定义:#defineACE_HAS_MFC1注意如果你想要通过CWinThread派生新线程,一定要设置THR_USE_AFX。在缺省情况下,所有的ACE项目都使用DLL版本的MSVC运行时库。尽管如此,你仍然可以选择使用static(LIB)版本的ACE库。如果你想要将MFC作为静态库链接进ACE,你可以在config.h文件中定义ACE_USES_STATIC_MFC。但如果你想要静态链接所有的东西(包括MSVC运行时库),你就需要自己修改ACE的项目文件。8.ACE的静态版本是通过定义ACE_AS_STATIC_LIBS来编译的。在链接静态ACE库的应用项目中也应该使用这个宏。你也可以在config.h文件中增加#defineACE_NO_INLINE来取消函数内联并减小静态库(和你的可执行程序)的大小。9.ACEDLL和LIB的命名方案:"Library/DLL名"+(是否为静态库?"s":"")+(是否启用了Debugging?"d":"")+{".dll"|".lib"}10.配置完毕后编译即可。选择dll版本,编译生成的dll文件在ACE_ROOT\bin中,相应的lib文件在ACE_ROOT\ace中。ACE测试各测试程序在ACE_ROOT\tests中。在其中也有一个工作空间文件可用来编译所有的测试程序(tests.dsw)。一旦你编译了所有测试程序(可使用批编译),你可以运行tests目录中的perl脚本run_test.pl或批处理文件run_tests.bat来进行所有测试。TAO的编译与安装确定VC的CL.EXE在你的访问路径上。设置ACE_ROOT或TAO_ROOT环境变量。例如:setACE_ROOT=C:\ACE_wrappersTAO最好放置在ACE_wrappers(这也是缺省情况)。1.确定ACE已经编译和安装。2.确定ACE_wrappers\bin已在“Tools|Options”中的“ExecutableDirectories”中列出。如果在MSVC下使用TAO_IDL编译器就需要进行此设置。3.加载tao\TAO.dsw,并编译TAO库。4.要编译Cubit测试,加载performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw,并编译客户和服务器。TAOACE.dswTAOACE.dsw是一个VisualC++5.0/6.0工作空间文件,它加载的项目包括ACE、TAO、TAO_IDL(编译器)、gperf、orb服务库,以及一些单独的可执行程序(比如NamingService,等等)。它可以用于编译所有的用于编译/运行TAO应用的文件。三、我选择编译的是dll版本(Release),并在ACE的config.h文件中定义了“#defineACE_HAS_STANDARD_CPP_LIBRARY1”。编译后我所得到的ace.dll的大小是1.13MB,相应的ace.lib的大小是1.77MB;TAO.dll的大小是1.47MB,相应的TAO.lib的大小是2.74MB。所有文件约有MB,包括源程序、编译生成的中间文件,等等,但有些例子及服务我没有编译。祝学有所成!马维达-------------------------------------将ACE与VC6集成在一起一.打开Tools>Options>Directories加入以下内容:ExecutableFile:C:\ACE_wrappers\binIncludeFile:C:\ACE_wrappers\C:\ACE_wrappers\TAOC:\ACE_wrappers\TAO\orbsvcsLibraryFiles:C:\ACE_wrappers\aceC:\ACE_wrappers\TAO\taoC:\ACE_wrappers\TAO\orbsvcs\orbsvcsSourceFiles:C:\ACE_wrappers\aceC:\ACE_wrappers\TAO\taoC:\ACE_wrappers\TAO\orbsvcs\orbsvcs二.加入C:\ACE_wrappers\bin到系统环境变量path中三.设置系统变量ACE_ROOT=C:\ACE_wrappersTAO_ROOT=C:\ACE_wrappers\TAO这是《梦幻古龙》程序崩溃后的转存日志。
不用管,可以删的。
不过里面记录的信息标识了错误的原因。
根据转存文件看,你是Windows Vista的系统。
无法加载驱动程序是因为没有适当的权限。
你试试在游戏上点右键->以管理员身份运行。
0-9级 跑腿
任务:
任务条件:等级小于等于 10 级
任务描述:在无名岛的无名酒店中,店小二麦老广专门负责分送岛上村民的信件。但由于酒店生意太好,麦老广无法抽身,于是专门请小玩家帮他跑腿通知一些村民过去取信。玩家按照他的要求完成任务后,就可以得到一定的经验奖励。
任务条件:等级小于等于 10 级
任务描述:神剑山庄的谢晓峰偶尔路过无名岛,却被几个鬼鬼祟祟的人沿途跟踪。因为他自己不想出手暴露身份,便想请求玩家帮他解决这个麻烦。玩家按照他的要求完成任务后,就可以得到一定的经验奖励。
任务条件:等级≥ 10 ,组队或单人领取
任务描述:京城丐帮分舵的舵主小火神手下经常被红鞋子的人欺负,他希望玩家能帮忙教训一下红鞋子帮众,替他们出出这口恶气。玩家按照他的要求完成任务后,就可以得到较高的经验奖励。
1.
任务地点:比武岛
相关NPC:义父
大致内容:替义父送别了前来比武的众人后,需要回去跟义父报告 2.
任务地点:比武岛
相关NPC:义父
大致内容:义父让你打败他身旁的吸血蛾 3.
任务地点:比武岛
相关NPC:义父
大致内容:义父将父母留给你的锦囊交给你后,让你把青儿/小梅带到他这里 4.
任务地点:比武岛
相关NPC:义父
大致内容:义父教你武功,并且让你去打败野猪
5.
任务地点:无名岛
相关NPC:义父、施经墨
大致内容:义父让你去找施经墨 6.
任务地点:无名岛
相关NPC:施经墨、岳麟
大致内容:施经墨让你去找武器店老板 7.
任务地点:无名岛
相关NPC:岳麟、薛老夫人
大致内容:武器店老板让你去找布店老板 8.
任务地点:无名岛
相关NPC:薛老夫人、秀娘
大致内容:布店老板让你去找饰品店老板
9.
任务地点:无名岛
相关NPC:墨秀娘、方幼萍
大致内容:饰品店老板让你去酒店找老板方幼萍 10.
任务地点:无名酒店
相关NPC:方幼萍
大致内容:方幼萍让你学会组队再来找她 11.
任务地点:碧云滩、忘忧林
相关NPC:方幼萍、朱停
大致内容:方幼萍让你打败3只粉燕子后找忘忧林的朱停 12.
任务地点:忘忧林
相关NPC:忘忧林
大致内容:朱停让你找3株药材来给他
13.
任务地点:无名岛
相关NPC:孙驼子
大致内容:朱停让你去找杂货店老板 14.
任务地点:无名岛
相关NPC:杨开泰
大致内容:杂货店老板让你去找钱庄老板 15.
任务地点:无名岛
相关NPC:王寡妇
大致内容:钱庄老板让你去找客栈老板王寡妇 16.
任务地点:鸿宾客栈
相关NPC:陆小凤
大致内容:王寡妇告诉你她店里来了个大人物陆小凤,让你前往拜访
17.
任务地点:无名岩洞
相关NPC:陆小凤
大致内容:陆小凤让你去找西门吹雪 18.
任务地点:无名岩洞
相关NPC:西门吹雪
大致内容:西门吹雪让你去杀10个杀手书生
19.
任务地点:无名岩洞
相关NPC:黑衣人
大致内容:西门吹雪让你去杀黑衣人 20.
任务地点:鸿宾客栈
相关NPC:陆小凤
大致内容:西门吹雪让你去找陆小凤
21.
任务地点:京城
相关NPC:卜巨
大致内容:陆小凤让你10级后去找门派传送人卜巨
10-20级1.
任务地点:京城
相关NPC:卜巨
大致内容:卜巨让你加入门派后再找他 2.
任务地点:京城
相关NPC:卜巨
大致内容:卜巨让你做完 3.
任务地点:京城
相关NPC:屠方
大致内容:卜巨让你去找屠方 4.
任务地点:京城南郊
相关NPC:屠方
大致内容:屠方让你到京城南郊打1块猪肉回来给他
5.
任务地点:京城
相关NPC:古龙
大致内容:屠方让你去古龙处 6.
任务地点:京城
相关NPC:王怜花
大致内容:古龙让你去王怜花处了解活血技能 7.
任务地点:京城
相关NPC:老实和尚
大致内容:王怜花让你去找老实和尚了解调息技能 8.
任务地点:京城
相关NPC:铁大力
大致内容:王怜花让你去找武器打造师
9.
任务地点:京城
相关NPC:熊猫儿
大致内容:武器打造师让你去找熊猫儿 10.
任务地点:京城
相关NPC:皇榜
大致内容:熊猫儿让你去皇榜处 11.
任务地点:比京城
相关NPC:陆小凤
大致内容:知道绣花大盗议案后,要破案得奖励,想起陆小凤 12.
任务地点:比武岛六扇门
相关NPC:棍子
大致内容:陆小凤让你去六扇门找棍子
13.
任务地点:京城南郊平南王府
相关NPC:江重威
大致内容:陆小凤让你去找江重威,需要带上一些药材给他 14.
任务地点:京城南郊
相关NPC:江重威
大致内容:江重威让你去打败15只野猪 15.
任务地点:京城南郊
相关NPC:江重威
大致内容:江重威让你去找蛇王 16.
任务地点:京城南郊
相关NPC:江重威
大致内容:江重威让你去打败熊姥姥
17.
任务地点:京城
相关NPC:欧阳情
大致内容:江重威让你去找欧阳情问个究竟 18.
任务地点:六扇门
相关NPC:绣花大盗
大致内容:欧阳情告知晚上到六扇门可找绣花大盗 19.
任务地点:京城望花楼
相关NPC:吕素文
大致内容:安福奖励你后,希望你继续帮忙追查一宗案件,追查案件的杨峥已经失踪,先找吕素文吧 20.
任务地点:百花谷
相关NPC:王振飞
大致内容:吕素文说她的好友思思被杀害是狄青麟所为,但为了不打草惊蛇,让你先去找王振飞
21.
任务地点:百花谷
相关NPC:王振飞
大致内容:王振飞让你帮他打败15个小叶子 22.
任务地点:百花谷
相关NPC:应无物
大致内容:王振飞让你去找应无物 23.
任务地点:百花谷
相关NPC:赵正
大致内容:应无物让你去找找正 24.
任务地点:百花谷
相关NPC:赵正
大致内容:赵正让你帮他杀3个疯狂小叶子
25.
任务地点:月牙湾
相关NPC:史天王
大致内容:赵正让你去找史天王 26.
任务地点:月牙湾
相关NPC:史天王
大致内容:打败15个黒竹独臂挫挫史天王的锐气 27.
任务地点:月牙湾
相关NPC:樱子
大致内容:史天王让你去找樱子 28.
任务地点:月牙湾
相关NPC:樱子
大致内容:打败15个东瀛忍者挫挫樱子的锐气
29.
任务地点:百花谷大屋
相关NPC:苦行僧
大致内容:得知狄青麟在大屋想拉拢苦行僧的组织扩张势力,到大屋找苦行僧 30.
任务地点:百花谷大屋
相关NPC:狄青麟
大致内容:苦行僧让你打败狄青麟 31.
任务地点:京城太和殿
相关NPC:安福
大致内容:安福很欣赏你的能力,让你20级去找戴天
评论列表(0条)