![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Требуется определить свободное место на диске..
Сначала хочу получить список всех дисков в системе, чтобы потом для каждого применить функцию GetDiskFreeSpaceEx().. Как раз проблема с получением дисков..
GetLogicalDriveStrings(MAX_PATH_SIZE,drive) возвращает 16.. В итоге получают в drive только C:\...ну а ещё в системе есть D и E.. Объясните пожалуйста, я в чём-то не права? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата lpBuffer [out] Понимаешь, в чем дело? Не одну строку содержит буфер, которая заканчивается нулем, а несколько строк, разделенных нулями. А если ты просто печатаешь буфер, то печатается все как раз до первого нуля-разделителя... Вот так будет работать:A pointer to a buffer that receives a series of null-terminated strings, one for each valid drive in the system, plus with an additional null character. Each string is a device name. wchar_t drive[MAX_PATH_SIZE] = {0}; |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
При компиляции возникла вот такая ошибка:
Run-Time Check Failure #2 - Stack around the variable 'Drives' was corrupted. Скажите пожалуйста, с чем это может быть связано? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Опять VC++ ... И Борланд С++ 2009 и GCC работают прекрасно (причем CodeGuard молчит как рыба, ничего не замечает... Так же как и CodeProfiler). Может, VC хочет
wchar_t Drives[4] = {0};, чтобы поместить в Drives и три символа, и нуль-терминатор? |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Может, VC хочет wchar_t Drives[4] = {0};, чтобы поместить в Drives и три символа, и нуль-терминатор? Да, действительно! Спасибо! Ну а теперь что касается получения информации о дисковом пространстве.. У меня на ListBox есть список дисков, выделяю любую строку - по нажатию соответствующей кнопки на Edit должна выводиться информация по выбранному диску..Проблема в том, что не получается вывести значение параметров, содержащих общее кол-во байт на диске и количество свободных байт..
Подскажите пожалуйста, как здесь нужно? Сообщение отредактировано: 18192123 - 23.11.2008 2:38 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата как здесь нужно? Конвертировать в строку (причем обрати внимание на описатель формата), и потом уже ее как обычно передавать куда нужно:GetDiskFreeSpaceEx(szBuf, NULL, &TotalNumberOfBytes, &TotalNumberOfFreeBytes); |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 23:29 |