Delphi的BUG????!!!!

Ykang 2001-12-22 10:18:55
下面这段程序在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;
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ykang 2001-12-26
  • 打赏
  • 举报
回复
to hawk26(老武):
老兄,谢谢你,你真是个热心人啊,我知道可以用另外的方法,但我不明白为什么BuildCommDCB就是要出错。
我的同事用VC++测试,如果用BuildCommDCB("9600,N,8,1",&Dcb)同样运行出错,
但如果这样;
CString b="9600,N,8,1";
BuildCommDCB(b,&Dcb);//代码好象是这样的
就对啦
准备收分吧。
 
Ykang 2001-12-24
  • 打赏
  • 举报
回复
to zhujianzhou():
老兄,我在测试hawk26(老武)兄的程序同样出这个问题,他的程序没有设缓冲区啊,后来我把65536改成4096,也是一样啊,但同样的代码为什么在BCB却没事呢?
zhujianzhou 2001-12-24
  • 打赏
  • 举报
回复
你的输出缓冲太大了,用65534试试,另外一般先用GetCommState函数填充DCB结构,再用SetCommState写回才行,试试吧
962veiri 2001-12-24
  • 打赏
  • 举报
回复
我也出过跟你类是的经历,就是在编译环境正常运行
到单独执行就不响应,很痛苦,我现在都不知道什么原因
Ykang 2001-12-24
  • 打赏
  • 举报
回复
To hawk26(老武):
老兄,单独运行还是要出错啊。 
hawk26 2001-12-24
  • 打赏
  • 举报
回复
哥们,你把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 );
单独运行正常。
Ykang 2001-12-24
  • 打赏
  • 举报
回复
难道就没有人知道吗?
hawk26 2001-12-23
  • 打赏
  • 举报
回复
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;
cobi 2001-12-23
  • 打赏
  • 举报
回复
估计时系统问题

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧