嗨,伙计们,如果我想用

SetFilePointer(fi1, 0, NULL, FILE_CURRENT) != INVALID_SET_FILE_POINTER

或者什么?
SetFilePointer(fi1, 1, NULL, FILE_CURRENT) != INVALID_SET_FILE_POINTER

MSDN Documentation

最佳答案

也不是真的。第一个不会检测到EOF,第二个会移动文件指针,我猜这不是你想要的。
您应该通过使用SetFilePointerEx的“move method”和零距离调用FILE_CURRENT来读取文件指针并将其与通过调用GetFileSizeEx获得的文件大小进行比较。

LARGE_INTEGER pos, size;
if (!SetFilePointerEx(hfile, 0, &pos, FILE_CURRENT))
    HandleError();
if (!GetFileSizeEx(hfile, &size))
    HandleError();
bool eof = (pos.QuadPart == size.QuadPart);

10-01 06:23
查看更多