各位高手:请问一个问题(VC++)
当文件指针(dwValue )大于2147483647时
(PLONG)lpDistanceToMoveHigh怎么用下面的代码有错误吗?
//dwValue 大于2147483647
DWORD lpDistanceToMoveHigh; 
DWORD lpDistanceToMoveLow; 

lpDistanceToMoveHigh=(unsigned long)dwValue / 2147483647;
lpDistanceToMoveLow=(unsigned long)dwValue % 2147483647;
SetFilePointer( Buf->hFile, (LONG)lpDistanceToMoveLow,(PLONG)lpDistanceToMoveHigh, FILE_BEGIN );

解决方案 »

  1.   

    SetFilePointer( Buf->hFile, (LONG)lpDistanceToMoveLow,(PLONG)&lpDistanceToMoveHigh, FILE_BEGIN );
      

  2.   

    正在编译...
    fmpBufFun.cpp
    h:\2002\硬盘播出(协议)\好莱坞 多通道带播出硬盘播控系统(截播)\SDK\fmpBufFun\fmpBufFun.cpp(451) : error C2664: “SetFilePointer” : 不能将参数 3 从“DWORD *”转换为“PLONG”
            与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
      

  3.   

    声明的时候:
    LONG lpDistanceToMoveHigh; 
    LONG lpDistanceToMoveLow;
    不要用DWORD,因为它无符号,而long有。