Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

юзаю GetFileSize

5.1K
19 сентября 2003 года
lpszName
4 / / 19.09.2003
////.............
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(...)
3
19 сентября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
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(...)



1. Ты неправильно вычисляешь длину файла:
int ff_s = f_sL + f_sH;//полный размер файла
ff_s должен быть 64-битным значением (LONGLONG), да и не сложение должно быть...

2. Не думаю, что ты будешь юзать файлы более 2Gb, так что от FileSizeHigh можно отказаться вовсе.

3. Проверяй возвращаемое значение на INVALID_FILE_SIZE

5.1K
19 сентября 2003 года
lpszName
4 / / 19.09.2003
не подумал раньше ///__int64///
Но насколько я понял при игноре FileSizeHigh
можно обходтся int =)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог