当前位置:首页
开发技术指南» 文章正文
    引言:

 ·两个简单但非常重要的问题    »显示摘要«
    摘要: 两个问题: 1. 在ms sql server 中 怎样才能自定义一种类型,比如长度为三的数字? 2. 单号自增长的问题, 比如 表结构 a_table( id , aparam(char(2)), aserialno(char(10)) 其中aserialno是自增长单号,其组成为前面两位是 aparam,后面为流水号,在数据库后台怎样让其 自动生成? ......
 ·delphi 和 excel的日期格式转换    »显示摘要«
    摘要: 我要把dbgrid得数据导入到excel,其中有一个是日期字段,在access数据库里面的这个字段格式为 yyyy-mm-dd,但是导入到excel就变成 yyyy-mm-dd hh:mm:ss,点解决这个问题,我想保持前面的这个格式 ......


救串口通讯

我做了一个串口通讯的程序。我要求点击按钮以后串口打开,再次点击按钮以后串口关闭。请问该加入什么功能呢?怎么实现呢?我的源程序如下:void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
   
      Button1->Caption="串口打开";  
       
   
      char   *ComNo;  
      DCB   dcb;  
      String   Temp;  
      //取得要打开的通信端口  
      Temp   =   "COM"+IntToStr(rdCOM->ItemIndex   +1);  
      //转换至指针类型Char  
      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;  
        }  
      //将dcb地址传入,以取得通信参数  
      GetCommState(hComm,&dcb);                                                   //   得知目前通信端口的状态  
      dcb.BaudRate   =   CBR_19200;                                                     //   设置波特率为9600  
      dcb.ByteSize   =   8;                                                                     //   字节为   8   bit  
      dcb.Parity   =   NOPARITY;                                                         //   Parity   为   None  
      dcb.StopBits   =   ONESTOPBIT;                                               //   1   个Stop   bit  
      //通信端口设置  
      if   (!SetCommState(hComm,   &dcb))   {               //   设置通信端口的状态  
          MessageBox   (0,   "通信端口设置错误!!!","Set   Error",MB_OK);  
          CloseHandle(hComm);  
          return;  
        }  
  }  
 

NO.1   作者: yhz

CreateFile   的那一句有问题。  
  当你第二次按那个按钮的时候,因为指定的串口已经打开,  
  所以这个函数无法创建   hComm。  
   
  唯一的办法是把   hComm   定义成静态变量。  
  然后在   CreateFile   之前判断串口是否已经打开:  
  if(hComm   ==   NULL)  
  {  
      hComm   =   CreateFile(ComNo,GENERIC_READ   |   GENERIC_WRITE,  
                0,   NULL,   OPEN_EXISTING,   0,   0);  
      //以下的就自己完成了  
      Button1->Caption="关闭串口";  
  }  
  else  
  {  
      CloseHandle(hComm);  
      hComm   =   NULL;  
      Button1->Caption="打开串口";  
  }  
  大概就是这样了。


 ·如何实现大学学生成绩表打印    »显示摘要«
    摘要: 有表 :成绩(班级号,学号,姓名,学期,课程,成绩,补考成绩) 要打印格式为: 第一学期 第二学期 第三学期 课程 成绩 补考成绩 课程 成绩 补考成绩 课程 成绩 补考成绩 请提供实现思路,在.net中如何做呢? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE