本帖最后由 booklijian 于 2009-06-16 13:39:11 编辑

解决方案 »

  1.   

    fh_infile有问题。
       fp_infile=fdopen(readFile.fileDescriptor, "r+" ); 
        if ( fp_infile == NULL ) 
        { 
            fprintf(stderr, "Error opening file %s for reading--fdopen\n", filename); 
            exit( -1); 
        } 
        fh_infile=(HANDLE) fp_infile; //你这是做什么?肯定不对了用CreateFile打开文件,可以获得文件句柄,不要用fdOpen
      

  2.   

    你好。非常感谢你的回复。
    用CreateFile函数打开文件的话,获得的是文件句柄,但是在后续的代码中需要用到 readFile.fileDescriptor,也就是该文件的描述符id,是一个数字。
    用CreateFile的话,该怎么做才能给readFile.fileDescriptor正确赋值?
    非常感谢。
      

  3.   

    用Windows API。别用C的FILE函数...
      

  4.   

    你的目的不外乎下面几个需求:
    1、获取文件的句柄
    2、获取文件的属性特征
    3、获取文件的大小
    -------------------------
    用CFile就可以解决所有问题
    1、CFile打开后m_hFile就是文件的句柄
    2、BOOL GetStatus(CFileStatus& rStatus) const;获取文件属性特征
    3、virtual ULONGLONG GetLength() const;获取文件长度顺便说一句,CFile内部也是用CreateFile,只是封装了而已