搜索
bottom↓
回复: 10

求救c++builder的串口通信问题

[复制链接]

出0入0汤圆

发表于 2011-8-14 09:33:29 | 显示全部楼层 |阅读模式
就是写一个最简单的通信程序,照着书本写了一通,结果来了一句下面的,死活编不过,我看了书上面的和网上的都不用定义这个的啊。
[C++ Error] Unit1.cpp(42): E2451 Undefined symbol 'rdComm'

原函数

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  char *ComNo;
  DCB  dcb;
  String  Temp;
  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;
      }

}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-8-14 10:18:40 | 显示全部楼层
现在直接给它一个字符串了,可以编译。不过打开串口失败。无语

出0入0汤圆

发表于 2011-8-14 10:22:43 | 显示全部楼层
这个是啥控件?
头像被屏蔽

出0入0汤圆

发表于 2011-8-14 10:58:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2011-8-14 11:44:52 | 显示全部楼层
回复【3楼】bbs2009  
回 【2楼】 huayuliang
这个是啥控件?
-------------------------------
貌似没用控件, 貌似 windows  api。
-----------------------------------------------------------------------

是的。刚才吃饭回来,仔细查了一下,终于接收到单片机发出的数据了。哈哈。

出0入0汤圆

发表于 2011-8-14 14:08:04 | 显示全部楼层
俺。。。只会用控件。。实在没法子才自己写。

出0入0汤圆

发表于 2011-8-14 14:58:33 | 显示全部楼层
void __fastcall TForm7::Button1Click(TObject *Sender)
{
char *ComNo;
  DCB  dcb;
  String  Temp;
  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分别测试过,无任何问题。

出0入0汤圆

发表于 2011-8-14 15:26:23 | 显示全部楼层
rdComm貌似就是一个ComboBox(或者RadioGroup)控件而已,赋值为1,2,3,4...,ItemIndex取当前选择值
ComNo最好加前缀“\\.\”,否则串口号大于10,无法识别

出0入0汤圆

 楼主| 发表于 2011-8-14 16:48:03 | 显示全部楼层
回复【7楼】DoDo915  
rdcomm貌似就是一个combobox(或者radiogroup)控件而已,赋值为1,2,3,4...,itemindex取当前选择值
comno最好加前缀“\\.\”,否则串口号大于10,无法识别
-----------------------------------------------------------------------

对的,我改成RadioGroup1就OK了。这本书真害人,还有其它的错误。因为是第一次搞这个,很多东西都不懂,只能照抄。

出0入0汤圆

发表于 2011-8-14 18:18:14 | 显示全部楼层
回复【8楼】mplk
-----------------------------------------------------------------------

那是因为你没有设置rdcomm的属性, 需要将Style属性设置成csDropDownList值才可以。 不熟悉borland的vcl, 用c++builder和delphi做ui就是纯粹找虐。

本人用bcb 和delphi已经13年。 有什么问题找我,我帮你解决。

出0入0汤圆

发表于 2011-8-14 18:20:34 | 显示全部楼层
还需要在item属性里,加入几行字符串。 书并没有错误,问题是你没有vcl基础。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 16:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表