基于MFC的对串口通讯的封装
// SerialPort.h
class CSerialPort
{
private:
HANDLE m_hnd;
void Init( int );
public:
cSerialPort() : m_hnd(INVALID_HANDLE_VALUE) {}
~cSerialPort() { Close(); }
BOOL Open( int, int=-1 );
BOOL IsOpen() { return m_hnd!=INVALID_HANDLE_VALUE; }
void Close();
BOOL Send( char*, int );
BOOL Receive( char*, int& );
};
// SerialPort.cpp
#include "stdafx.h"
BOOL CSerialPort::Open( int port, int baud )
{
if( port < 0 || port > 8 )
return FALSE;
char buf[8];
sprintf( buf, "COM%i", port );
m_hnd=::CreateFile( buf, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL );
if( m_hnd!=INVALID_HANDLE_VALUE )
Init( baud );
return m_hnd!=INVALID_HANDLE_VALUE;
}
void CSerialPort::Close()
{
if( m_hnd!=INVALID_HANDLE_VALUE ) <