1
填充WIN32_FIND_DATA結構如何正確設置nFileSizeHigh和nFileSizeLow一個WIN32_FIND_DATA結構的組成部分時,我只有在ULONGLONG字節的文件大小。如何正確地從一個ULONGLONG
直接投射導致編譯器抱怨可能的數據丟失。
WIN32_FIND_DATA wfd;
wfd.nFileSizeLow = (DWORD)totalBytes;
填充WIN32_FIND_DATA結構如何正確設置nFileSizeHigh和nFileSizeLow一個WIN32_FIND_DATA結構的組成部分時,我只有在ULONGLONG字節的文件大小。如何正確地從一個ULONGLONG
直接投射導致編譯器抱怨可能的數據丟失。
WIN32_FIND_DATA wfd;
wfd.nFileSizeLow = (DWORD)totalBytes;
該警告是準確的,你正試圖在一個32磅捅中填充64個小豬。像這樣做,而不是:
ULONGLONG size = something;
wfd.nFileSizeHigh = size >> 32;
wfd.nFileSizeLow = size & 0xffffffffUL;
,一定要提防WIN32_FIND_DATA通常應該只能由和用FindFirstFile FindNextFile()填補。
使用'ULARGE_INTEGER'結構而不是手動移位:'ULARGE_INTEGER ul; ul.QuadPart = ...; wdf.nFileSizeLow = ul.LowPart; wdf.nFileSizeHigh = ul.HighPart;' –