您的位置:程序门 -> vb ->



readfile的奇怪问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


readfile的奇怪问题
发表于:2007-07-22 07:30:07 楼主
ret   =   readfile(filehandle,   strbuff,   256,   lngbytesread,   lpoverlapped)
if   ret=0   then
      err   =   getlasterror()
      debug.print   ret   &   ", "   &   err
end   if

上边代码运行后   ret   和   err居然都是0,请问是代码哪里错了?   还是其他什么原因?
发表于:2007-07-22 07:41:031楼 得分:0
readfile   函数返回0   代表读取文件失败   但是不代表产生了err错误
发表于:2007-07-22 08:39:312楼 得分:0
那。。如何才能知道错误的原因?
发表于:2007-07-22 09:16:433楼 得分:0
ret   =   readfile(filehandle,   strbuff,   256,   lngbytesread,   lpoverlapped)
if   ret=0   then
      debug.print   ret   &   ", "   &   err.lastdllerror
end   if
发表于:2007-07-22 09:18:454楼 得分:0
或者  
ret   =   readfile(filehandle,   strbuff,   256,   lngbytesread,   lpoverlapped)
if   ret=0   then
      err.raise(err.lastdllerror   )
end   if
发表于:2007-07-22 11:22:345楼 得分:0
up
发表于:2007-07-22 11:56:546楼 得分:0
刚才查了一下   err.lastdllerror   也是   0,   怪
发表于:2007-07-22 12:13:167楼 得分:0
ret   =   readfile(filehandle,   strbuff,   256,   lngbytesread,   byval   0)
这样写吧
发表于:2007-07-22 12:16:418楼 得分:0
filehandle   是管道,为防止读阻塞,我用的是   overlapped   方式
发表于:2007-07-22 12:17:059楼 得分:0
所以用   readfile(filehandle,   strbuff,   256,   lngbytesread,   lpoverlapped)     ,没错阿
发表于:2007-07-23 09:49:4010楼 得分:0
to   ayalicer(小刀惋心)
api调用失败   与vb的err有什么关系     倒  

这样写   不方便些?
if   readfile(filehandle,   strbuff,   256,   lngbytesread,   lpoverlapped)   then
      成功
else
      失败
end   if
发表于:2007-07-23 14:12:1811楼 得分:0
err.lastdllerror   是在调用dll函数遇到错误返回的值
发表于:2007-07-25 12:29:0112楼 得分:0
顶起来,继续求解。。。
发表于:2007-07-27 13:29:0213楼 得分:0
overlapped   是异步操作

如果你确定你的代码中那些变量使用都没问题的话

设置getlasterror,并将他返回值传上来
发表于:2007-08-07 17:31:2814楼 得分:0
是不是你的文件刚好就结束啦?

或者文件大小是0个字节


快速检索

最新资讯
热门点击