在线守候一个活见鬼的鸟问题,,请各位大虾帮忙,,问题绝对绝透顶

XDZXG 2001-12-10 05:10:26
这段代码在执行Create()时出错,GetLastError()返回为0,是何原因,真是见鬼了
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return ;
}
CSocket sockClient;
if(sockClient.Create())
{
unsigned long aa=GetLastError();
return ;
}
...全文
135 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylb_and_xy 2001-12-10
  • 打赏
  • 举报
回复
GetLastError()得到的是最近一次错误的值,如果你的Create()函数执行成功的话,GetLastError()的返回值是你前一次错误的值,和你的Create()函数无关!
  • 打赏
  • 举报
回复
这位大哥大意了,创建成功返回了
if(sockClient.Create())
应该改为
if(!sockClient.Create())
XDZXG 2001-12-10
  • 打赏
  • 举报
回复
哦,对了,谢谢,我真是忙晕了,谢谢,马上送分
XDZXG 2001-12-10
  • 打赏
  • 举报
回复
不对呀Create()若成功就不会到GetLastError()去了
XDZXG 2001-12-10
  • 打赏
  • 举报
回复
没有Create()的三个参数无需协议,分别是端口号,通信模式(SOCK_STREAM)和地址
colorknight 2001-12-10
  • 打赏
  • 举报
回复
Nonzero if the function is successful; otherwise 0, and a specific error code can be retrieved by calling GetLastError
上面这行是MSDN关于CSOCKET 中CREATE方法返回值的说明,你的程序运行成功了,当然得到的错误是0了。
XDZXG 2001-12-10
  • 打赏
  • 举报
回复
不行呀,大哥,Create()就出错,而且该成int还是一个样
cdone 2001-12-10
  • 打赏
  • 举报
回复
应该指明协议吧
ccnuxjg 2001-12-10
  • 打赏
  • 举报
回复
将unsigned long aa=GetLastError();
改成int aa=GetLastError();
试试

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧