调用NetMessageBufferSend的问题

skyxie 2004-06-28 05:05:52
我在程序中调用NetMessageBufferSend时失败
GetLastError返回值为:ERROR_IO_PENDING
/*Overlapped I/O operation is in progress. */
(在此之前我已经将SetLastError(0),因此这个错误肯定是调用该函数造成的)
而MSDN中该函数的说明中却说,如果调用该函数失败,返回值可能是
ERROR_ACCESS_DENIED
ERROR_INVALID_PARAMETER
ERROR_NOT_SUPPORTED
NERR_NameNotFound
NERR_NetworkError

总之,我遇到的这个错误它没有列出来。

请问是怎么回事?

ps,我用的msdn是2000.7如果各位有新版msdn的请帮我看看该函数的描述,谢谢。
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
baojian88888 2004-07-05
  • 打赏
  • 举报
回复
摘自msdn :
Return Values
If the function succeeds, the return value is NERR_Success.

If the function fails, the return value can be one of the following error codes.

Value Meaning
ERROR_ACCESS_DENIED
...
...

并没有说是取 GetLastError返回值
baojian88888 2004-07-05
  • 打赏
  • 举报
回复
返回值不是取 GetLastError 的值,而是直接NetMessageBufferSend的返回值

这是我以前写的一段代码:
DWORD Ret = NetMessageBufferSend(NULL, SendTo, SendFrom, (LPBYTE)Msg, sizeof(TCHAR) * lstrlen(Msg));
if(Ret == NERR_Success)
{
//MessageBox(hDlgMain, _T("发送成功!"), _T("SendMsg"), MB_ICONINFORMATION);
}
else
{
TCHAR ErrInfo[256] = _T("发送失败!\r\n\r\n");
switch(Ret)
{
case ERROR_ACCESS_DENIED:
{
lstrcat(ErrInfo, _T("拒绝访问"));
break;
}
case ERROR_INVALID_PARAMETER:
{
lstrcat(ErrInfo, _T("无效参数"));
break;
}
case ERROR_NOT_SUPPORTED:
{
lstrcat(ErrInfo, _T("不支持该请求"));
break;
}
case NERR_NameNotFound:
{
lstrcat(ErrInfo, _T("网络上找不到此消息别名"));
break;
}
case NERR_NetworkError:
{
lstrcat(ErrInfo, _T("一般网络错误"));
break;
}
default:
{
lstrcat(ErrInfo, _T("未知错误"));
break;
}
}

MessageBox(hDlgMain, ErrInfo, APP_TITLE, MB_ICONWARNING);
}
skyxie 2004-07-04
  • 打赏
  • 举报
回复
up
skyxie 2004-06-29
  • 打赏
  • 举报
回复
但是事实证明NetMessageBufferSend的调用确实没有成功。
badguy2002 2004-06-28
  • 打赏
  • 举报
回复
因为此函数进行的是一个异步IO操作,所以它返回ERROR_IO_PENDING表示操作成功,并且正在进行中
badguy2002 2004-06-28
  • 打赏
  • 举报
回复
ERROR_IO_PENDING不是错误吧,只是告诉你,IO还没有完成
skyxie 2004-06-28
  • 打赏
  • 举报
回复
我的代码大概是这样的

SetLastError(0);
TRACE("%d",GetLastError());//这里显示为0

NetMessageBufferSend(...);
TRACE("%d",GetLastError());//这里就成了997,即ERROR_IO_PENDING
PiggyXP 2004-06-28
  • 打赏
  • 举报
回复
我大概帮楼主看了一下,也确实是这样的

既然有别的错误的话,可能真的不是调用这个函数产生的啊

skyxie 2004-06-28
  • 打赏
  • 举报
回复
up

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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