CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

Delphi的BUG????!!!!

楼主Ykang()2001-12-22 22:18:55 在 Delphi / VCL组件开发及应用 提问

下面这段程序在Delphi的IDE中运行正常,但单独运行却出现地址冲突,  
  如果将BuildCommDCB('9600,N,8,1',CommDCB)这句去掉后,正常。而用C语言重写后,BCB编译后再单独运行正常。  
  Dephi4,delphi5,delphi6的现象一样,以上系统我在是Win98,win98se2都测试过,而在Win2000下正常。  
   
  var  
      CommDCB:TDCB;  
      hComm:Integer;    
  begin  
      hComm   :=   CreateFile('COM1',  
                                                  GENERIC_READ   or   GENERIC_WRITE,  
                                                  0,  
                                                  nil,  
                                                  OPEN_EXISTING,  
                                                  FILE_FLAG_OVERLAPPED,  
                                                  0);  
   
      SetupComm(hComm,65536,4096);  
      BuildCommDCB('9600,N,8,1',CommDCB);//将这句去掉后,正常  
      SetCommState(hComm,CommDCB);  
      FileClose(hComm);  
  end; 问题点数:50、回复次数:9Top

1 楼cobi(我是小新)回复于 2001-12-23 07:57:10 得分 5

估计时系统问题Top

2 楼hawk26(老武)回复于 2001-12-23 10:43:48 得分 0

var  
        pDcb   :   _DCB;  
  Begin  
        hFile   :=   CreateFile(   'COM1',   GENERIC_READ   or   GENERIC_WRITE,  
                                                                              0,  
                                                                              nil,  
                                                                              OPEN_EXISTING,  
                                                                              FILE_FLAG_OVERLAPPED,  
                                                                              0);  
        GetCommState(hFile,pDcb);     //应该加上这句  
        BuildCommDCB('9600,N,8,1',pDcb);  
        SetCommState(hFile,pDcb);  
        CloseHandle(   hFile   );  
  end;Top

3 楼Ykang()回复于 2001-12-24 09:46:42 得分 0

To hawk26(老武):  
        老兄,单独运行还是要出错啊。 Top

4 楼962veiri(风尘旅人)回复于 2001-12-24 09:55:03 得分 5

我也出过跟你类是的经历,就是在编译环境正常运行  
  到单独执行就不响应,很痛苦,我现在都不知道什么原因Top

5 楼zhujianzhou()回复于 2001-12-24 10:05:06 得分 5

你的输出缓冲太大了,用65534试试,另外一般先用GetCommState函数填充DCB结构,再用SetCommState写回才行,试试吧Top

6 楼Ykang()回复于 2001-12-24 10:24:41 得分 0

to   zhujianzhou():  
        老兄,我在测试hawk26(老武)兄的程序同样出这个问题,他的程序没有设缓冲区啊,后来我把65536改成4096,也是一样啊,但同样的代码为什么在BCB却没事呢?  
      Top

7 楼Ykang()回复于 2001-12-24 13:41:47 得分 0

难道就没有人知道吗?Top

8 楼hawk26(老武)回复于 2001-12-24 19:13:18 得分 35

哥们,你把buildCommDCB去掉,改为直接操作pDcb,这样:  
          pDcb.BaudRate   :=   9600;  
          pDcb.StopBits   :=   1;  
          pDcb.ByteSize   :=   8;  
          pDcb.Parity   :=   0;  
  我用过下面的方法,是为了使串口能收到null字符:        
      hFile   :=   CreateFile(   PChar(gszPort),   GENERIC_READ   or   GENERIC_WRITE,  
                                                                              0,  
                                                                              nil,     //0,  
                                                                              OPEN_EXISTING,  
                                                                              FILE_ATTRIBUTE_NORMAL   or   FILE_FLAG_OVERLAPPED,  
                                                                              0);  
        GetCommState(hFile,pDcb);  
          pDcb.Flags   :=   pDcb.Flags   and   $FFFFF7FF;  
        SetCommState(hFile,pDcb);  
        CloseHandle(   hFile   );  
  单独运行正常。Top

9 楼Ykang()回复于 2001-12-26 09:39:48 得分 0

to   hawk26(老武):  
        老兄,谢谢你,你真是个热心人啊,我知道可以用另外的方法,但我不明白为什么BuildCommDCB就是要出错。  
        我的同事用VC++测试,如果用BuildCommDCB("9600,N,8,1",&Dcb)同样运行出错,  
        但如果这样;  
                    CString   b="9600,N,8,1";  
                    BuildCommDCB(b,&Dcb);//代码好象是这样的  
                    就对啦  
        准备收分吧。  
       Top

相关问题

  • Delphi 的 BUG???
  • Delphi超级Bug!!!
  • Delphi 6 的 BUG?
  • Delphi 6 Bug Report !!!!!!!
  • delphi 6的bug
  • 是DELPHI的BUG????????!!!!!!!!!
  • Delphi的BUG?
  • delphi的一个bug
  • 是DELPHI的BUG吗?
  • Delphi的一个Bug!

关键词

  • win98
  • delphi
  • pdcb
  • buildcommdcb
  • commdcb
  • hfile
  • 运行
  • hcomm
  • setcommstate
  • hawk26

得分解答快速导航

  • 帖主:Ykang
  • cobi
  • 962veiri
  • zhujianzhou
  • hawk26

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo