powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определение свободного места на диске
4 сообщений из 4, страница 1 из 1
Определение свободного места на диске
    #33112305
summoner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть стандартрная апишная функция GetDiskFreeSpaceEx() последний параметр которой возвращает значение типа PULARGE_INTEGER, которое и есть количество байт свободных в заданной директории (первый параметр), но дело в том, что это значение не может быть больше 4294967296, т.е. если винт больше 4-х гигов, то она возвращает остаточное значение. Как с этим бороться, подскажите плиз!
...
Рейтинг: 0 / 0
Определение свободного места на диске
    #33112343
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, ты неправ(а).
ULARGE_INTEGER это не число, а структура.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#if defined(MIDL_PASS)
typedef struct _ULARGE_INTEGER {
#else // MIDL_PASS
typedef union _ULARGE_INTEGER {
    struct {
        DWORD LowPart;
        DWORD HighPart;
    };
    struct {
        DWORD LowPart;
        DWORD HighPart;
    } u;
#endif //MIDL_PASS
    ULONGLONG QuadPart;
} ULARGE_INTEGER;

typedef ULARGE_INTEGER *PULARGE_INTEGER;
(WINNT.H)
...
Рейтинг: 0 / 0
Определение свободного места на диске
    #33112465
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
summonerЕсть стандартрная апишная функция GetDiskFreeSpaceEx() последний параметр которой возвращает значение типа PULARGE_INTEGER, которое и есть количество байт свободных в заданной директории (первый параметр), но дело в том, что это значение не может быть больше 4294967296, т.е. если винт больше 4-х гигов, то она возвращает остаточное значение. Как с этим бороться, подскажите плиз!
Туда надо передать указатель не на DWORD на на unsigned __int64, использовав С-Style cast или reinterpret_cast
...
Рейтинг: 0 / 0
Определение свободного места на диске
    #33112623
summoner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Ильич summonerЕсть стандартрная апишная функция GetDiskFreeSpaceEx() последний параметр которой возвращает значение типа PULARGE_INTEGER, которое и есть количество байт свободных в заданной директории (первый параметр), но дело в том, что это значение не может быть больше 4294967296, т.е. если винт больше 4-х гигов, то она возвращает остаточное значение. Как с этим бороться, подскажите плиз!
Туда надо передать указатель не на DWORD на на unsigned __int64, использовав С-Style cast или reinterpret_cast

Большой тебе сенькс!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определение свободного места на диске
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]