如题,不是经过封装成类的。谢谢了~!!!
解决方案 »
- 让人无语的vc错误
- TCP通讯的问题
- 如何将整图形(包括当前视图以外的部分)存为BMP
- 关于GuiToolkit 1.15的问题
- 高手帮助:socket接收数据问题,接收数据比较快而且多,需要将接收到的数据在多线程中进行处理!
- 很多人问,也有很多人答,但都没有完美解决的问题!
- ★★★★★ 实现自动筛选 ★★★★★
- 怎样在你自己的程序中嵌入VBSCRIPT解释器,让程序可以执行vbscript脚本?
- 求助---UP有分,不够再给
- 有谁知道我的电脑为什么点击IE地址栏会检测软盘驱动器呢?
- =======〉有人遇到过吗,STL 的 list 的 remove 方法有时竟然删除不了要删除的元素!?
- TerminateProcess的问题
{
COMSTAT ComStat ;
DWORD dwErrorFlags;
DWORD dwLength;
ClearCommError(ComDev, &dwErrorFlags, &ComStat);
dwLength = min((DWORD) nMaxLength, ComStat.cbInQue);
if (dwLength > 0)
if (!ReadFile(ComDev, lpszBlock,dwLength, &dwLength, NULL))
{
dwLength = 0 ;
ClearCommError( ComDev, &dwErrorFlags, &ComStat ) ;
}
return dwLength;
} // end of ReadCommBlock()BOOL WriteCommBlock(HANDLE ComDev,LPSTR lpByte,DWORD dwBytesToWrite)
{
BOOL fWriteStat ;
DWORD dwBytesWritten ;
DWORD dwErrorFlags;
COMSTAT ComStat;
if (ComDev == (HANDLE)-1)
return FALSE;
fWriteStat = WriteFile(ComDev, lpByte, dwBytesToWrite, &dwBytesWritten, NULL);
if (!fWriteStat)
{
ClearCommError(ComDev, &dwErrorFlags, &ComStat);
return FALSE;
}
return TRUE;
}
以上是两个处理,一个是读,一个是写!
下面是打开串口的处理!
HANDLE OpenConnection(int nIndex)
{
HANDLE hComDev;
COMMTIMEOUTS CommTimeOuts ;
DCB dcb ;
char szPort[ 15 ]; BOOL bResult; wsprintf( szPort, "%s%d","\\\\.\\COM", nIndex) ;
hComDev = CreateFile(szPort, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hComDev == (HANDLE)-1)
{
return hComDev;
} bResult=SetupComm(hComDev, 4096, 4096);
bResult=PurgeComm(hComDev,
PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR); CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
CommTimeOuts.ReadTotalTimeoutConstant = 0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 1000;
CommTimeOuts.WriteTotalTimeoutConstant = 10000;
bResult=SetCommTimeouts(hComDev, &CommTimeOuts); GetCommState(hComDev, &dcb);
dcb.fDtrControl=DTR_CONTROL_DISABLE;
dcb.fRtsControl=RTS_CONTROL_DISABLE;
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity =NOPARITY;
dcb.StopBits = ONESTOPBIT; if (!SetCommState(hComDev, &dcb))
{
CloseHandle(hComDev);
hComDev = (HANDLE)-1;
} return hComDev;
}