解决方案 »
- MFC重绘控件问题。
- utf-8到Unicode的转换!望大侠们指点一下!
- 连接断开后的及时响应问题。
- 把一个CString变量做为参数传给一个线程A后,当有别的线程改变了这个CString的内容后,线程A处理的CString内容也会改变!如何解决??
- access中如何显示分数和小于1的小数
- 我做了一个动态库,用到我自定义的结构。我自定义的结构怎么输出啊?
- 大家看看,这段代码,为什么会出这种错误?
- 再高分请教大侠 从.BMP文件中加载位图,并在当前客户区显示出来,我用的是LoadImage 函数,但是出现颜色不正常,兰色变红色,怎么办啊
- 请教高手问题,(150拿去)在对话框内创建了一个CTabCtrl,如何在CTabCtrl上创建一个ListBox。
- Visual C++游戏编程基础 光盘代码
- delete 出错
- 如何改变Serializer->StartEnvelope自动生成的属性
IRP_MJ_READ 但是不知道应用层是什么
BOOL WINAPI WaitCommEvent(
__in HANDLE hFile,
__out LPDWORD lpEvtMask,
__in LPOVERLAPPED lpOverlapped
);
Value Meaning
EV_BREAK
0x0040
A break was detected on input.
EV_CTS
0x0008
The CTS (clear-to-send) signal changed state.
EV_DSR
0x0010
The DSR (data-set-ready) signal changed state.
EV_ERR
0x0080
A line-status error occurred. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY.
EV_RING
0x0100
A ring indicator was detected.
EV_RLSD
0x0020
The RLSD (receive-line-signal-detect) signal changed state.
EV_RXCHAR
0x0001
A character was received and placed in the input buffer.
EV_RXFLAG
0x0002
The event character was received and placed in the input buffer. The event character is specified in the device's DCB structure, which is applied to a serial port by using the SetCommState function.
EV_TXEMPTY
0x0004
The last character in the output buffer was sent.
Example
DWORD WINAPI Com1ThreadProcess(HWND hWnd//主窗口句柄)
{
DWORD wEven;
char str[10]; //读入数据
SetCommMask(hComm1, EV_RXCHAR | EV_TXEMPTY);
while (TRUE)
{
WaitCommEvent(hComm1, &wEven, NULL);
if(wEven = 0)
{
CloseHandle(hCommThread1);
hCommThread1 = NULL;
ExitThread(0);
}
else
{
switch (wEven)
{
case EV_TXEMPTY:
if (wTxPos < wTxLen)
{
//在串口1写入数据
DWORD wCount; //写入的字节数
WriteFile(hComm1, com1Data.TxBuf[wTxPos], 1, &wCount, NULL);
com1Data.wTxPos++;
}
break;
case EV_RXCHAR:
if (com1Data.wRxPos < com1Data.wRxLen)
{
//读取串口数据, 处理收到的数据
DWORD wCount; //读取的字节数
ReadFile(hComm1, com1Data.RxBuf[wRxPos], 1, &wCount, NULL);
com1Data.wRxPos++;
if(com1Data.wRxPos== com1Data.wRxLen);
::PostMessage(hWnd, COM_SENDCHAR, 0, 1);
}
break;
}
}
}
}
return TRUE;
}
1,开两个线程,一个readfile.....,一个writefile.........
2,同样不过可以使用overlapped模式进行异步操作..............
3.开一个线程,waitcommevent.......然后操作............
4.使用readfileex,writefileex,这个时候不需要线程.................不过要指定回调函数...................