1

ULONGLONG バイト単位のファイル サイズしかない場合、 WIN32_FIND_DATA構造体のnFileSizeHighおよびnFileSizeLowコンポーネントを正しく設定するにはどうすればよいですか。

直接キャストを行うと、コンパイラはデータ損失の可能性について警告します。

WIN32_FIND_DATA wfd;
wfd.nFileSizeLow = (DWORD)totalBytes;
4

1 に答える 1

2

警告は正確です。32 ポンドのポークに 64 匹の豚を詰め込もうとしています。代わりに次のようにします。

ULONGLONG size = something;
wfd.nFileSizeHigh = size >> 32;
wfd.nFileSizeLow = size & 0xffffffffUL;

WIN32_FIND_DATA は通常、FindFirstFile と FindNextFile() によってのみ埋められるべきであることに注意してください。

于 2012-10-27T17:19:39.137 に答える