回 帖 发 新 帖 刷新版面

主题:vc++2005 中的_read()

我在一段程序中使用了_read(),但返回读到数据为0,不知道为什么,请大家帮助。
下面是我的代码
     unsigned char aaa[256][128]; 
             array<unsigned char>^ aa= gcnew array<unsigned char>(256*128) ;
             int fh1;
             unsigned int count;


             openFileDialog1->InitialDirectory="c:\\";
             openFileDialog1->Filter="bmp文件(*bmp)|*.bmp|all file(*.*)|*.*";
             openFileDialog1->FilterIndex=2;
             openFileDialog1->RestoreDirectory=true;
             openFileDialog1->ShowDialog();
            
                 array<String^>^ files = openFileDialog1->FileNames;
         System::IntPtr^p=Marshal::StringToHGlobalAuto(files->ToString() );
             const char*ch=(char*)p->ToPointer();//转换成功OK
    
            fh1 = _open(ch ,_O_RDONLY ); //打开成功
             
          {  if( fh1 == -1 )
                      label1->Text="111ddddd"; 
             else 
             label1->Text=openFileDialog1->FileName;//对是否打开进行判断
  
          } 


          count= _read( fh1,savedata,128*256 );    

          _close( fh1 );
          g1->DrawString(savedata[1][21] .ToString(),this->label1->Font,br1,50,50);
          g1->DrawString(count.ToString(),this->label1->Font,br1,50,70);

回复列表 (共2个回复)

沙发

If the function tries to read at end of file, it returns 0. 

最可能的是该文件为空

板凳

我打开的是一张图片

我来回复

您尚未登录,请登录后再回复。点此登录或注册