юзаю GetFileSize
DWORD f_sH;
DWORD f_sL = GetFileSize(hFile,&f_sH);
int ff_s = f_sL + f_sH;//полный размер файла
char *buff = new char[ff_s];
////.............
но вот проблемма у меня размер получается типа
303535080... - фаил для проверки я брал размером 1кб
тоесть 1000 байт
потом в цикле будет идти считование...
как получить 1000 вместо 3030535305 - этой бяки
или я юзаю неправильно GetFileSize(...)
Цитата:
Originally posted by lpszName
////.............
DWORD f_sH;
DWORD f_sL = GetFileSize(hFile,&f_sH);
int ff_s = f_sL + f_sH;//полный размер файла
char *buff = new char[ff_s];
////.............
но вот проблемма у меня размер получается типа
303535080... - фаил для проверки я брал размером 1кб
тоесть 1000 байт
потом в цикле будет идти считование...
как получить 1000 вместо 3030535305 - этой бяки
или я юзаю неправильно GetFileSize(...)
////.............
DWORD f_sH;
DWORD f_sL = GetFileSize(hFile,&f_sH);
int ff_s = f_sL + f_sH;//полный размер файла
char *buff = new char[ff_s];
////.............
но вот проблемма у меня размер получается типа
303535080... - фаил для проверки я брал размером 1кб
тоесть 1000 байт
потом в цикле будет идти считование...
как получить 1000 вместо 3030535305 - этой бяки
или я юзаю неправильно GetFileSize(...)
1. Ты неправильно вычисляешь длину файла:
int ff_s = f_sL + f_sH;//полный размер файла
ff_s должен быть 64-битным значением (LONGLONG), да и не сложение должно быть...
2. Не думаю, что ты будешь юзать файлы более 2Gb, так что от FileSizeHigh можно отказаться вовсе.
3. Проверяй возвращаемое значение на INVALID_FILE_SIZE
Но насколько я понял при игноре FileSizeHigh
можно обходтся int =)