都说是例程了,还是调试不了(0分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
> hcom:=createfile('com2',generic_read or generic_write,0,nil,open_existing,
> file_attribute_normal or file_flag_overlapped,0);// 打 开 串
行 口
> if hcom=invalid_handle_value then
-----这是几个人贴出来的,可调试时候出现如下警告:
Comparison always evaluates to False
why?
 
刚才写了个程序读串口,没出现这个错
我原以为可能是com2被什么占用,我在程序中读我的com1,出错
但不是这个错。
Ansyc32这个控件比较简单,学习多线程串口通信不错
 
这个警告的意思是此串口永远打不开了。。
/老师规定要用周期:(
 
奇怪的是,
hcom:=createfile('com2',generic_read or generic_write,0,nil,open_existing,
file_attribute_normal or file_flag_overlapped,0);// 打 开 串
行 口
if hcom=invalid_handle_value then
showmessage('cant open com2')
else
showmessage('cant open com2')没有执行,但这个警告是什么意思呢?
 
我又试了一遍没有这种情况
解决了别忘了告诉我
 
呵呵,警告的意思是hcom永远不会等于invalid_handle_value,
所以hcom=invalid_handle_value永远是false,怎么会执行下面的东西呢?
瞧你的E文............ ^_^
INVALID_HANDLE_VALUE=DWORD(-1),所以你把 hcom声明为DWORD就能解决了
 
hcom:Thandle;----不能改了。
现在刚才那个问题不知道怎么就解决了:)
新问题是
运行第一次后,再次运行程序
hcom:=createfile('com2',generic_read or generic_write,0,nil,open_existing,
file_attribute_normal or file_flag_overlapped,0);//
if hcom=invalid_handle_value then
begin
showmessage('cant open com2 ') ;
每次都提示我“cant open com2",也就是不能打开com2的说:(
 
那是, 你有没有closehandle(hcom)呀?
另外, 在overlapped状态下, 要对串口的操作进行状态判断的, 当处于
padding状态时必须等待到完成或失败, 否则会有意想不到的奇怪的随机的
不可控制的...的错误发生的. ^_^
此外, 一般是用if hcom<32 then
... 来判断打开是否正确.
 
Project的关闭中:
“ closehandle(hcom);
if closehandle(hcom)=false then
showmessage('出现异常,未能正常关闭com2')”
-------每次必“出现异常。。未能正常关闭com2":(
本程序做毕业设计,只当熟悉windows API的调用了。。西西,不管发生
奇怪的随机的。。。
BTW:曾经听哪为大虾说过要看自己机器的com2???
怎么看?
如果写通信程序要设置成怎样?
呵呵。。oicq上不了,只好什么问题都往大富翁上提
 
接受答案了.
 
后退
顶部