该函数的返回值告诉您新的位置.引用文档:
如果函数成功并且lpDistanceToMoveHigh为NULL,则返回值是新文件指针的低位DWORD.
注意 如果函数返回INVALID_SET_FILE_POINTER以外的值,则对SetFilePointer的调用已成功.您不需要调用GetLastError.
如果函数成功且lpDistanceToMoveHigh不为NULL,则返回值是新文件指针的低位DWORD,lpDistanceToMoveHigh包含新文件指针的高位DWORD.
如果要在不移动的情况下发现当前位置,则传递FILE_CURRENT
一个距离为零的"移动方法" .
该文档还包含一个示例,说明如何将该函数包装成一个不需要将位置的上部和下部分成单独的变量的函数.
您可以使用:
high_dword = 0;
low_dword = SetFilePointer(file, 0, &high_dword, FILE_CURRENT);
pos = high_dword << 32 | low_dword
Run Code Online (Sandbox Code Playgroud)