C++BUILDER6.0有无现成的RS232通信控件?小弟我想搞RS232通讯
C++BUILDER6.0有无现成的RS232通信控件?我想搞RS232通讯
C++BUILDER6.0有无现成的RS232通信控件?我想搞RS232通讯
------解决方案--------------------
char Txbuf[X],Rxbuf[X];
long Txlen ;
void __fastcall TFormMain::SendCommands(char* Txbuffer,char * Rxbuffer,long len)
{
DWORD dw;
EscapeCommFunction(hTxCom,SETRTS);
WriteFile(hTxCom, Txbuffer, len, &dw, 0);
char state;
dw=0;
ReadFile (hRxCom, Rxbuf, 20, &dw, 0);
return;
}
private: // User declarations
int TxComIndex;
int TxBaudIndex;
int TxParity;
int TxStopbit;
int RxComIndex;
int RxBaudIndex;
int RxParity;
int RxStopbit;
int TxDelay;
int TxCommandsDelay;
HANDLE hTxCom;
HANDLE hRxCom;
------解决方案--------------------
似乎是没有组件,用API也很简单:
HANDLE hComm;
DCB dcb;
DWORD nBytesRead,dwError;
COMSTAT cs;
char *Senddata,inbuff[1024];
unsigned long lrc,BS;
if((hComm=CreateFile( "COM1 ",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0))!=INVALID_HANDLE_VALUE)
{
GetCommState(hComm,&dcb);
dcb.BaudRate=CBR_9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=ONESTOPBIT;
SetCommState(hComm,&dcb);
Senddata=Edit1-> Text.c_str(); //这里Senddata里面是要发送的数据
BS=Edit1-> Text.Length(); //BS为要发送的数据长度
WriteFile(hComm,Senddata,BS,&lrc,NULL);
ClearCommError(hComm,&dwError,&cs);
if(cs.cbInQue> sizeof(inbuff))
PurgeComm(hComm,PURGE_RXCLEAR);
ReadFile(hComm,inbuff,cs.cbInQue,&nBytesRead,NULL);
inbuff[cs.cbInQue]= '\0 ';
// Memo1-> Text=inbuff;
if(hComm!=INVALID_HANDLE_VALUE)
CloseHandle(hComm);
}
else
{
ShowMessage( "开打通信端口错误! ");
}
------解决方案--------------------
有一本书介绍可以做一个控件,大斑竹网站上有
C++ Builder与RS-232串行通信控制
------解决方案--------------------
用mscomm32吧,或者spcom也是比较好的,这2个功能比较强
最近不少人问这类问题,搜索一下就有不少贴了,你看看,还有例子
------解决方案--------------------
一直用spcom,觉得很好用
后来自己写了个动态库
------解决方案--------------------
楼上的已经解决
在提供一个方法就是安装visual c++或vb就可以用了
------解决方案--------------------
用 MSCOMm.ocx 不是很难/// 希望给分
------解决方案--------------------
出现“license not found.you cannot use in design mode.无许可,设计模式不可用!是因为没有ocx 注册成功!注册表中没有注册信息。
------解决方案--------------------
需要注册表信息
我有,也是从网上下的
------解决方案--------------------
API
------解决方案--------------------
delphi 中tmscomm控件使用指南
Delphi 中TMsComm控件使用指南
l 注册TMsComm控件
1.将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中C:\winnt\system32\。
2.用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”-> "运行 ",再在中填入(假设操作安装在C盘,WIN2000):
Regsvr32 C:\winnt\system32\Mscomm32.ocx
3.在注册表中手工新建一个主键项:先在点击“开始”-> "运行 ",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为:
C++BUILDER6.0有无现成的RS232通信控件?我想搞RS232通讯
------解决方案--------------------
char Txbuf[X],Rxbuf[X];
long Txlen ;
void __fastcall TFormMain::SendCommands(char* Txbuffer,char * Rxbuffer,long len)
{
DWORD dw;
EscapeCommFunction(hTxCom,SETRTS);
WriteFile(hTxCom, Txbuffer, len, &dw, 0);
char state;
dw=0;
ReadFile (hRxCom, Rxbuf, 20, &dw, 0);
return;
}
private: // User declarations
int TxComIndex;
int TxBaudIndex;
int TxParity;
int TxStopbit;
int RxComIndex;
int RxBaudIndex;
int RxParity;
int RxStopbit;
int TxDelay;
int TxCommandsDelay;
HANDLE hTxCom;
HANDLE hRxCom;
------解决方案--------------------
似乎是没有组件,用API也很简单:
HANDLE hComm;
DCB dcb;
DWORD nBytesRead,dwError;
COMSTAT cs;
char *Senddata,inbuff[1024];
unsigned long lrc,BS;
if((hComm=CreateFile( "COM1 ",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0))!=INVALID_HANDLE_VALUE)
{
GetCommState(hComm,&dcb);
dcb.BaudRate=CBR_9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=ONESTOPBIT;
SetCommState(hComm,&dcb);
Senddata=Edit1-> Text.c_str(); //这里Senddata里面是要发送的数据
BS=Edit1-> Text.Length(); //BS为要发送的数据长度
WriteFile(hComm,Senddata,BS,&lrc,NULL);
ClearCommError(hComm,&dwError,&cs);
if(cs.cbInQue> sizeof(inbuff))
PurgeComm(hComm,PURGE_RXCLEAR);
ReadFile(hComm,inbuff,cs.cbInQue,&nBytesRead,NULL);
inbuff[cs.cbInQue]= '\0 ';
// Memo1-> Text=inbuff;
if(hComm!=INVALID_HANDLE_VALUE)
CloseHandle(hComm);
}
else
{
ShowMessage( "开打通信端口错误! ");
}
------解决方案--------------------
有一本书介绍可以做一个控件,大斑竹网站上有
C++ Builder与RS-232串行通信控制
------解决方案--------------------
用mscomm32吧,或者spcom也是比较好的,这2个功能比较强
最近不少人问这类问题,搜索一下就有不少贴了,你看看,还有例子
------解决方案--------------------
一直用spcom,觉得很好用
后来自己写了个动态库
------解决方案--------------------
楼上的已经解决
在提供一个方法就是安装visual c++或vb就可以用了
------解决方案--------------------
用 MSCOMm.ocx 不是很难/// 希望给分
------解决方案--------------------
出现“license not found.you cannot use in design mode.无许可,设计模式不可用!是因为没有ocx 注册成功!注册表中没有注册信息。
------解决方案--------------------
需要注册表信息
我有,也是从网上下的
------解决方案--------------------
API
------解决方案--------------------
delphi 中tmscomm控件使用指南
Delphi 中TMsComm控件使用指南
l 注册TMsComm控件
1.将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中C:\winnt\system32\。
2.用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”-> "运行 ",再在中填入(假设操作安装在C盘,WIN2000):
Regsvr32 C:\winnt\system32\Mscomm32.ocx
3.在注册表中手工新建一个主键项:先在点击“开始”-> "运行 ",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为: