こんにちはみんな私が使用してEOFをテストしたい場合
SetFilePointer(fi1, 0, NULL, FILE_CURRENT) != INVALID_SET_FILE_POINTER
また ?
SetFilePointer(fi1, 1, NULL, FILE_CURRENT) != INVALID_SET_FILE_POINTER
こんにちはみんな私が使用してEOFをテストしたい場合
SetFilePointer(fi1, 0, NULL, FILE_CURRENT) != INVALID_SET_FILE_POINTER
また ?
SetFilePointer(fi1, 1, NULL, FILE_CURRENT) != INVALID_SET_FILE_POINTER
どちらも本当にトリックをしません。最初のものはEOFを検出せず、2番目のものはファイルポインタを移動しますが、これはあなたが望むものではないと思います。
SetFilePointerEx
「移動メソッド」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);