📄 csdn_文档中心_c++网络开发包ace环境的配置与调试.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://www.csdn.net/develop/Read_Article.asp?id=27379 -->
<!--内容开始//--><HTML><HEAD><TITLE>CSDN_文档中心_C++网络开发包ACE环境的配置与调试</TITLE>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK
href="CSDN_文档中心_C++网络开发包ACE环境的配置与调试.files/csdn.css" rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<DIV align=center>
<STYLE>.title0 {
COLOR: #ffffff; FONT-FAMILY: arial; FONT-SIZE: 17px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.title2:link {
COLOR: #000000; TEXT-DECORATION: none
}
A.title2:visited {
COLOR: #000000; TEXT-DECORATION: none
}
A.title2:active {
COLOR: #ff0000; TEXT-DECORATION: none
}
A.title2:hover {
COLOR: #ff0000; TEXT-DECORATION: none
}
</STYLE>
<SCRIPT language=JavaScript>
<!--
function submitlog(sign)
{
var types=document.alogon.type.options[document.alogon.type.selectedIndex].value;
if (document.alogon.name.value!="" && document.alogon.pass.value!="")
{
if (types!="1")
document.alogon.action="http://www.csdn.net/member/logon.asp";
else
document.alogon.action="http://expert.csdn.net/member/logon.asp";
if(sign)
document.alogon.submit();
//return true;
}
else
{
if (document.alogon.name.value=="")
alert("请输入用户名!");
if (document.alogon.pass.value=="")
alert("请输入密码");
return false;
}
return true;
}
function GetMyPass()
{
if (document.alogon.name.value!="")
{
document.alogon.action="http://www.csdn.net/member/getpass.asp";
document.alogon.submit();
}
else
{
alert("请在姓名输入框里输入用户名或注册EMAIL!");
}
}
// -->
</SCRIPT>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD bgColor=#004d99 height=25 width=20></TD>
<TD bgColor=#004d99> <A
href="http://www.csdn.net/member/login.asp"><FONT color=#ffff33>登
录..</FONT></A> <A href="http://www.csdn.net/member/zc.asp"
target=_blank><FONT color=#ffff33>[注 册]</FONT></A> <A
href="http://www.csdn.net/member/login.asp"><FONT
color=#ffff33>忘记密码</FONT> </A> <A
href="http://www.csdn.net/member/logonout.asp"><FONT
color=#ffff33>注销登录</FONT> </A></TD>
<TD align=right bgColor=#990000 width=20><IMG height=25
src="CSDN_文档中心_C++网络开发包ACE环境的配置与调试.files/top_1.gif" width=20></TD>
<FORM action=http://www.csdn.net/search_ok.asp method=post target=_blank>
<TD align=right bgColor=#009999 width=250><FONT color=#ffffff><FONT
color=#ffffff><INPUT class=FormText_1 name=search size=15> <SELECT
class=FormText_1 name=type> <OPTION selected value=1>新闻标题</OPTION>
<OPTION value=2>软件名称</OPTION> <OPTION value=3>商品名称</OPTION> <OPTION
value=4>文档标题</OPTION> <OPTION value=6>职位名称</OPTION></SELECT> </FONT><INPUT class=td3 name=Submit type=submit value="搜 索">
</FONT></TD></FORM></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD align=middle height=70 width=150><IMG height=60
src="CSDN_文档中心_C++网络开发包ACE环境的配置与调试.files/csdn.gif" width=120></TD>
<TD align=middle width=470>
<SCRIPT language=javascript>
var rand = Math.random().toString();
var ordval = parseInt(rand.substring(2,4));
function Showad(width)
{
if(width=='468')
{
document.write("<a href='http://www.dearbook.com.cn/' target='_blank'><OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' WIDTH=468 HEIGHT=60><PARAM NAME=movie VALUE='/adv//468x60.swf'> <PARAM NAME=quality VALUE=high> <EMBED src='/adv//468x60.swf' quality=high border=0 WIDTH=468 HEIGHT=60 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'></EMBED></OBJECT></a>");
return;
}
if(width=='120')
{
document.write("<a href='http://www.csdn.net/csdn/csdnClick.aspx?ad=Oracle-button1&adurl&adurl=http://www.oracle.com/global/cn/documentation/10g/index.html?content.html' target='_blank'><img src='/adv/develop/grid_computing_120x60_text1.gif' width=120 HEIGHT=60 border=0></a>");
return;
}
return;
}
Showad('468')</SCRIPT>
</TD>
<TD align=middle width=150>
<SCRIPT>Showad('120')</SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#000000 colSpan=2 height=1 width=770></TD></TR>
<TR>
<TD align=middle bgColor=#004d99 height=28 width=150><FONT
class=title0>csdn.net</FONT></TD>
<TD align=middle width=620>
<SCRIPT src="CSDN_文档中心_C++网络开发包ACE环境的配置与调试.files/navigation1.js"></SCRIPT>
</TD></TR>
<TR>
<TD align=middle bgColor=#000000 colSpan=2 height=1
width=770></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD bgColor=#f3f9fc height=23 width=10></TD>
<TD bgColor=#f3f9fc>
<MARQUEE onmouseout=this.start() onmouseover=this.stop() scrollAmount=5
scrollDelay=80>
<SCRIPT src="CSDN_文档中心_C++网络开发包ACE环境的配置与调试.files/marquee.htm"></SCRIPT>
</MARQUEE></TD>
<TD align=right bgColor=#f3f9fc width=101>
<SCRIPT>document.write("<img src=http://count.csdn.net/count/pageview1.asp?columnid=4&itemid=11 border=0 width=0 height=0>");</SCRIPT>
<B>
<SCRIPT language=JavaScript>
<!--
document.ns = navigator.appName == "Netscape"
tmpDate = new Date();
date = tmpDate.getDate();
month= tmpDate.getMonth() + 1 ;
if(document.ns)
{
year1=tmpDate.getYear()
year= year1.toString().substr(1,2);
}
else
year= tmpDate.getYear();
document.write(year);
document.write(".");
document.write(month);
document.write(".");
document.write(date);
// -->
</SCRIPT>
</B> </TD></TR>
<TR bgColor=#999999>
<TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
<SCRIPT src="CSDN_文档中心_C++网络开发包ACE环境的配置与调试.files/microsoft.js"></SCRIPT>
</TD>
<TD align=middle width=620>
<TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
<TBODY>
<TR bgColor=#ffffff>
<TD align=middle height=10 width=50></TD>
<TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://www.csdn.net/develop/">文档中心</A> - <FONT
color=#003399>Visual C++</FONT> </TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>标题</FONT></TD>
<TD><B> C++网络开发包ACE环境的配置与调试</B> qiek(原作)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
<TD width=500> ACE VC 安装 配置 调试 问题 解决</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<P>ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。<BR>估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。</P>
<P>我的系统环境是:Win2k pro(sp4)、VC6.0 (sp5)</P>
<P>过一阵,我的主页上要开论坛,并设VC专区,欢迎大家上去交流<BR><A
href="http://www.liufei.com/">http://www.liufei.com/</A></P>
<P><BR>一、ACE官方主页:<A
href="http://www.cs.wustl.edu/~schmidt/ACE.html">http://www.cs.wustl.edu/~schmidt/ACE.html</A><BR>
下载地址:<A
href="http://deuce.doc.wustl.edu/Download.html">http://deuce.doc.wustl.edu/Download.html</A><BR>
<BR> 我下载的是Latest Beta Kit中的ACE.zip(Latest
Release中的压缩包好像有问题,我有WinRAR3.30解压缩报错)</P>
<P>二、解压缩后放在D盘<BR> D:\ACE_wrappers</P>
<P>三、在D:\ACE_wrappers\ace目录下新建文件config.h加入一行<BR>
#include "ace/config-win32.h"<BR>
<BR>四、编译:用VC6.0打开D:\ACE_wrappers\ace\ace.dsw<BR>
左侧显示 ACE DLL
classes<BR>
ACE LIB classes<BR>
或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置<BR>
“编译”,“重建全部”(或任一,如ACE DLL - Win32 MFC
Debug)<BR>
此过程可能持续半小时至一个小时不等<BR>
或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置<BR>
此过程可能持续二至四个钟头<BR>
<BR>
产生的.lib文件位于D:\ACE_wrappers\ace\下,<BR>
产生的.dll文件位于D:\ACE_wrappers\bin\下<BR>
<BR> <BR>
同样打开ace_static.dsw<BR> 编译<BR>
ACEs.lib<BR> ACEsd.lib<BR>
ACE_RMCasts.lib<BR>
ACE_RMCastsd.lib<BR>
TMCasts.lib<BR> TMCastsd.lib</P>
<P> ACE生成的dll和lib文件的命名规则:(d = debug,s =
static)<BR><BR> debug - aced.lib、debug+static -
acesd.lib、release - ace.lib、 release+static -
aces.lib<BR><BR><BR>五、样例程序的编译<BR>
用VC打开D:\ACE_wrappers\tests\tests.dsw<BR>
“编译”,“批构建”<BR>
<BR>六、自写程序的工程配置<BR> <BR>
中篇:ACE程序员教程.pdf中的样例程序:<BR> 网址:<A
href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/guide-tutorials.html">http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/guide-tutorials.html</A><BR>
<BR>
将网页上的原代码复制到一新建文件,并命名为server.cpp<BR>
用VC打开,编译,重建全部,弹出对话框,“This build command require
...“,点”是“<BR> <BR>
会出现以下错误<BR> <BR> 如果有“Cannot open
include file: 'ace/SOCK_Acceptor.h': No such file or
directory”<BR> 工程-设置-C/C++:
Preprocessor,附加包含路径:D:/ACE_wrappers<BR>
<BR> 如果有“ You must link against multi-threaded
libraries when using ACE (check your project
settings)”<BR> 工程-设置-C/C++: Code Generation - Use
run-time library : Debug Multithreaded Dll<BR>
<BR> 如果有“error C2065: 'ACE_ERROR' : undeclared
identifier”<BR>
error C2065: 'ACE_DEBUG' : undeclared
identifier<BR> #include "ace/Log_Msg.h"</P>
<P> error C4716: 'ace_main_i' : must return a
value<BR>
在main中加入<BR>
return 0;<BR> <BR> “error
LNK2001: unresolved external symbol "__declspec(dllimport) int
__cdecl”<BR> 工程-设置-Link-Input:
对象/库模块:添加aced.lib
附加库路径:D:\ACE_wrappers\ace<BR>
<BR>
<BR>
<BR> 编译client中遇到的问题<BR> 1、error
C2039: 'sprintf' : is not a member of
'ACE_OS'<BR>
<BR> #include
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -