求救c++builder的串口通信问题
就是写一个最简单的通信程序,照着书本写了一通,结果来了一句下面的,死活编不过,我看了书上面的和网上的都不用定义这个的啊。Unit1.cpp(42): E2451 Undefined symbol 'rdComm'
原函数
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *ComNo;
DCBdcb;
StringTemp;
Temp = "COM" +IntToStr(rdComm->ItemIndex+1); //就是这一句
ComNo =Temp.c_str();
hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, 0);
if(hComm == INVALID_HANDLE_VALUE)
{
MessageBox(0,"打开通信端口错误!!","Comm Error",MB_OK);
return;
}
GetCommState(hComm,&dcb);
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if (!SetCommState(hComm,&dcb))
{
MessageBox (0,"通信端口设置错误","Set Error",MB_OK);
CloseHandle(hComm);
return;
}
} 现在直接给它一个字符串了,可以编译。不过打开串口失败。无语 这个是啥控件? 回复【3楼】bbs2009
回 【2楼】 huayuliang
这个是啥控件?
-------------------------------
貌似没用控件, 貌似 windowsapi。
-----------------------------------------------------------------------
是的。刚才吃饭回来,仔细查了一下,终于接收到单片机发出的数据了。哈哈。 俺。。。只会用控件。。实在没法子才自己写。 void __fastcall TForm7::Button1Click(TObject *Sender)
{
char *ComNo;
DCBdcb;
StringTemp;
Temp = "COM1" ; //就是这一句
ComNo =Temp.c_str();
HANDLE hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, 0);
if(hComm == INVALID_HANDLE_VALUE)
{
MessageBox(0,"打开通信端口错误!!","Comm Error",MB_OK);
return;
}
GetCommState(hComm,&dcb);
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if (!SetCommState(hComm,&dcb))
{
MessageBox (0,"通信端口设置错误","Set Error",MB_OK);
CloseHandle(hComm);
return;
}
//对端口操作
//...............
//关闭端口
CloseHandle(hComm);
}
上述代码我已经测试过 ,用c++builder2009和delphi7分别测试过,无任何问题。 rdComm貌似就是一个ComboBox(或者RadioGroup)控件而已,赋值为1,2,3,4...,ItemIndex取当前选择值
ComNo最好加前缀“\\.\”,否则串口号大于10,无法识别 回复【7楼】DoDo915
rdcomm貌似就是一个combobox(或者radiogroup)控件而已,赋值为1,2,3,4...,itemindex取当前选择值
comno最好加前缀“\\.\”,否则串口号大于10,无法识别
-----------------------------------------------------------------------
对的,我改成RadioGroup1就OK了。这本书真害人,还有其它的错误。因为是第一次搞这个,很多东西都不懂,只能照抄。 回复【8楼】mplk
-----------------------------------------------------------------------
那是因为你没有设置rdcomm的属性, 需要将Style属性设置成csDropDownList值才可以。 不熟悉borland的vcl, 用c++builder和delphi做ui就是纯粹找虐。
本人用bcb 和delphi已经13年。 有什么问题找我,我帮你解决。 还需要在item属性里,加入几行字符串。 书并没有错误,问题是你没有vcl基础。
页:
[1]