怎样获取成功发送了多少数据

tanweijian2009 2009-08-20 05:32:24
用WriteFile()向并口发送数据后,调用什么函数能返回某个时刻成功发送多少呢
...全文
67 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2009-09-06
  • 打赏
  • 举报
回复
//同步方式
BYTE *lpBuffer;
DWORD nNumberOfBytesToWrite = 100; //需要写入100个数据
DWORD NumberOfBytesWritten; //返回实际写入的数据字节数
int rtn = WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, &NumberOfBytesWritten, NULL);
if(!rtn)
{
DWORD dwError = GetLastError(); //返回具体错误代码
}
else
{
TRACE("%d", NumberOfBytesWritten);
}
tanweijian2009 2009-08-20
  • 打赏
  • 举报
回复
楼上的朋友能给个简单的例子吗,谢谢啦
stjay 2009-08-20
  • 打赏
  • 举报
回复
BOOL WriteFile(
  HANDLE hFile, // 文件句柄
  LPCVOID lpBuffer, // 数据缓存区指针
  DWORD nNumberOfBytesToWrite, // 你要写的字节数
  LPDWORD lpNumberOfBytesWritten, // 用于保存实际写入字节数的存储区域的指针
  LPOVERLAPPED lpOverlapped // OVERLAPPED结构体指针
  );

阻塞模式:
*lpNumberOfBytesWritten就是发送字节

异步模式:
用,重叠IO
BOOL GetOverlappedResult(
HANDLE hFile,
LPOVERLAPPED lpOverlapped,
LPDWORD lpNumberOfBytesTransferred,
BOOL bWait
);
*lpNumberOfBytesTransferred为传送的字节
或完成端口
BOOL GetQueuedCompletionStatus(
HANDLE CompletionPort,
LPDWORD lpNumberOfBytes,
PULONG_PTR lpCompletionKey,
LPOVERLAPPED* lpOverlapped,
DWORD dwMilliseconds
);
*lpNumberOfBytes为传送字节
tanweijian2009 2009-08-20
  • 打赏
  • 举报
回复
UP

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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