C++写的COM DLL文件,可用VB,VC引用.
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 208970 2008-10-24 10:11 COMDebugSerialCom.dll
文件 1401 2008-10-24 09:22 COMDebugSerialCom.exp
文件 286352 2008-10-24 10:11 COMDebugSerialCom.ilk
文件 3450 2008-10-24 09:22 COMDebugSerialCom.lib
文件 26285 2008-10-24 10:11 COMDebugSerialCom.obj
文件 3569976 2008-10-23 08:43 COMDebugSerialCom.pch
文件 648192 2008-10-24 10:11 COMDebugSerialCom.pdb
文件 148480 2009-03-17 10:28 COMDebugvc60.idb
文件 77824 2008-10-24 10:11 COMDebugvc60.pdb
文件 12867 2008-10-24 10:11 COMSerialCom.cpp
文件 131 2008-10-23 16:51 COMSerialCom.def
文件 4155 2008-10-22 11:16 COMSerialCom.dsp
文件 543 2008-10-22 09:58 COMSerialCom.dsw
文件 1173 2008-10-22 11:13 COMSerialCom.h
文件 50176 2009-03-17 10:29 COMSerialCom.ncb
文件 53760 2009-03-17 10:29 COMSerialCom.opt
文件 252 2008-10-29 17:31 COMSerialCom.plg
目录 0 2008-10-29 17:31 COMDebug
目录 0 2009-03-17 10:29 COM
----------- --------- ---------- ----- ----
5093987 19
#include
#include
#include
#define FC_DTRDSR 0x01
#define FC_RTSCTS 0x02
#define FC_XONXOFF 0x04
#define ASCII_BEL 0x07
#define ASCII_BS 0x08
#define ASCII_LF 0x0A
#define ASCII_CR 0x0D
#define ASCII_XON 0x11
#define ASCII_XOFF 0x13
//*************************** Open COM & Initial COM *****************************
HANDLE _stdcall OpenCom( DWORD nPort DWORD nBaud )
{
HANDLE m_hIDComDev;
OVERLAPPED m_OverlappedReadm_OverlappedWrite;
char szPort[15];
char szComParams[50];
DCB dcb;
m_hIDComDev = NULL;
if(nPort>8)
return NULL;
wsprintf(szPort “COM%d“ nPort);
m_hIDComDev = CreateFile( szPort
GENERIC_READ | GENERIC_WRITE
0
NULL
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED
NULL );
if( m_hIDComDev == NULL )
return NULL;
memset(&m_OverlappedRead 0 sizeof( OVERLAPPED) );
memset(&m_OverlappedWrite 0 sizeof(OVERLAPPED) );
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
CommTimeOuts.ReadTotalTimeoutConstant = 0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 5000;
SetCommTimeouts( m_hIDComDev &CommTimeOuts );
wsprintf( szComParams “COM%d:%dn81“ nPort nBaud );
m_OverlappedRead.hEvent = CreateEvent( NULL TRUE FALSE NULL );
m_OverlappedWrite.hEvent = CreateEvent( NULL TRUE FALSE NULL );
dcb.DCBlength = sizeof( DCB );
GetCommState( m_hIDComDev &dcb );
dcb.BaudRate = nBaud;
dcb.ByteSize = 8;
unsigned char ucSet;
ucSet = (unsigned char) ( ( FC_RTSCTS & FC_DTRDSR ) != 0 );
ucSet = (unsigned char) ( ( FC_RTSCTS & FC_RTSCTS ) != 0 );
ucSet = (unsigned char) ( ( FC_RTSCTS & FC_XONXOFF ) != 0 );
if( !SetCommState( m_hIDComDev &dcb ) ||
!SetupComm( m_hIDComDev 10000 10000 ) ||
m_OverlappedRead.hEvent == NULL ||
m_OverlappedWrite.hEvent == NULL )
{
DWORD dwError = GetLastError();
if( m_OverlappedRead.hEvent != NULL )
CloseHandle( m_OverlappedRead.hEvent );
if( m_OverlappedWrite.hEvent != NULL )
CloseHandle( m_OverlappedWrite.hEvent );
CloseHandle( m_hIDComDev );
return NULL;
}
return m_hIDComDev;
}
//*****
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 208970 2008-10-24 10:11 COMDebugSerialCom.dll
文件 1401 2008-10-24 09:22 COMDebugSerialCom.exp
文件 286352 2008-10-24 10:11 COMDebugSerialCom.ilk
文件 3450 2008-10-24 09:22 COMDebugSerialCom.lib
文件 26285 2008-10-24 10:11 COMDebugSerialCom.obj
文件 3569976 2008-10-23 08:43 COMDebugSerialCom.pch
文件 648192 2008-10-24 10:11 COMDebugSerialCom.pdb
文件 148480 2009-03-17 10:28 COMDebugvc60.idb
文件 77824 2008-10-24 10:11 COMDebugvc60.pdb
文件 12867 2008-10-24 10:11 COMSerialCom.cpp
文件 131 2008-10-23 16:51 COMSerialCom.def
文件 4155 2008-10-22 11:16 COMSerialCom.dsp
文件 543 2008-10-22 09:58 COMSerialCom.dsw
文件 1173 2008-10-22 11:13 COMSerialCom.h
文件 50176 2009-03-17 10:29 COMSerialCom.ncb
文件 53760 2009-03-17 10:29 COMSerialCom.opt
文件 252 2008-10-29 17:31 COMSerialCom.plg
目录 0 2008-10-29 17:31 COMDebug
目录 0 2009-03-17 10:29 COM
----------- --------- ---------- ----- ----
5093987 19
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)