据我所知,
GetLastError的返回值在WINERROR.H中定义,其值不会超过10000
WSAGetLastError的返回值在WINSOCK2.H中定义,其值在10000以上
但我调用CFtpConnection的PutFile函数失败后,GetLastError返回10055,在WINSOCK2.H中定义为WSAENOBUFS。
不知道怎么回事?哪位高手能给解释一下?谢谢!

解决方案 »

  1.   

    感谢您使用微软产品。GetLastsError返回的错误代码并不都在WINERROR.H中定义,它可能返回所有的系统错误代码。
    关于这些代码的含义,您只需通过调用FormatMessage方法得到,而不需在系统头文件中查找。
    从您的描述中可以看出,您的错误的确是由于缓冲区或队列已满造成的。关于如何通过FormatMessage从错误代码得到错误描述,请参考下面链接中的示例:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/errors_0sdh.asp您也可以手工查找下面的系统错误代码表:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/errlist_7oz7.asp- 微软全球技术中心 VC技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。