Форум Фотогалерея Деловой мир Мелитополя
Мелитополь
Мелитопольский форум
 
 RSS  FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

GetDiskFreeSpace(); - вопрос по нему

 
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Мелитополь -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Гость










СообщениеДобавлено: Ср Авг 03, 2005 15:28 pm    Заголовок сообщения: GetDiskFreeSpace(); - вопрос по нему Ответить с цитатой

не могу разобраться как выводить на экран общий объем винта > 4 гиг

Код:

#include <windows.h>
//...
DWORD res[4];
GetDiskFreeSpace(NULL/*диск С:*/,&res[0],&res[1],&res[2],&res[3]);

res[0] - колво секторов в кластере
res[1] - байт в секторе
res[2] - свободный кластеров
res[3] - всего кластеров

и чтобы вычислить общий объем винта нужно res[0]*res[1]*res[3]
ессно в DWORD это не запихаешь (т.к. в даблворд влазит только 4294967296 вот такое число.. что равно 4 гига... у меня 80-ка стоит Sad )

как можно выдать на экран (в обычном консольном приложении с поддержской MFC) такое большое число?
Вернуться к началу
Гость










СообщениеДобавлено: Ср Авг 03, 2005 16:09 pm    Заголовок сообщения: Ответить с цитатой

разобрался тему можно закрыть.
Вернуться к началу
Drey

Писатель


Пол: Пол: Он
Зарегистрирован: 12.03.2005
Сообщения: 295

Репутация: 100.2
голосов: 3

СообщениеДобавлено: Ср Авг 03, 2005 21:38 pm    Заголовок сообщения: Ответить с цитатой

Не ну ты напиши как ты решил проблемку, а то може кому еще интересно Cool а потом я темку прикрою...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Гость










СообщениеДобавлено: Чт Авг 04, 2005 12:04 pm    Заголовок сообщения: Ответить с цитатой

Код:

#include <stdlib.h> // for _ui64toa
#include <windows.h> // for GetDiskFreeSpaceEx & GetDiskFreeSpace
...
DWORD disk_info[4];
char total_space[10];
ULARGE_INTEGER free,freecell,total;

GetDiskFreeSpaceEx("C:\\", &freecall, &total, &free);
GetDiskFreeSpace(NULL,&disk_info[0],&disk_info[1],&disk_info[2],&disk_info[3]);
_ui64toa(total.QuadPart, total_space, 10);
printf("total space = %s",total_space);
printf("sector per cluster = %d",disk_info[0]);
printf("bytes per sector = %d",disk_info[1]);
printf("free clusters = %d",disk_info[2]);
printf("total clusters = %d",disk_info[3]);
Вернуться к началу
Drey

Писатель


Пол: Пол: Он
Зарегистрирован: 12.03.2005
Сообщения: 295

Репутация: 100.2
голосов: 3

СообщениеДобавлено: Чт Авг 04, 2005 12:12 pm    Заголовок сообщения: Ответить с цитатой

Ясненька, вот теперь закрываю тему Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Мелитополь -> Программирование Часовой пояс: GMT + 2
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Р: 523745

База отдыха «Белый парус» пгт Кирилловка Азовское море.

Рейтинг Мелитопольских сайтов на Melitopol.org Hosting by VivaNET