IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Свободное место на диске, VC++ 2008 EE
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Требуется определить свободное место на диске..
Сначала хочу получить список всех дисков в системе, чтобы потом для каждого применить функцию GetDiskFreeSpaceEx()..
Как раз проблема с получением дисков..

#define MAX_PATH_SIZE 260
.......
wchar_t drive[MAX_PATH_SIZE]={0};
if (GetLogicalDriveStrings(MAX_PATH_SIZE,drive))
{
SendMessage(hListBox,LB_ADDSTRING, 0, (LPARAM)(LPCSTR)drive);
}


GetLogicalDriveStrings(MAX_PATH_SIZE,drive) возвращает 16..
В итоге получают в drive только C:\...ну а ещё в системе есть D и E..
Объясните пожалуйста, я в чём-то не права?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Опять VC++ ... И Борланд С++ 2009 и GCC работают прекрасно (причем CodeGuard молчит как рыба, ничего не замечает... Так же как и CodeProfiler). Может, VC хочет
wchar_t Drives[4] = {0};
, чтобы поместить в Drives и три символа, и нуль-терминатор?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 23.11.2008 1:46) *

Может, VC хочет
wchar_t Drives[4] = {0};
, чтобы поместить в Drives и три символа, и нуль-терминатор?

Да, действительно! Спасибо!
Ну а теперь что касается получения информации о дисковом пространстве..
У меня на ListBox есть список дисков, выделяю любую строку - по нажатию соответствующей кнопки на Edit должна выводиться информация по выбранному диску..Проблема в том, что не получается вывести значение параметров, содержащих общее кол-во байт на диске и количество свободных байт..

wchar_t szBuf[256]={},szStr[256]={};
ULARGE_INTEGER TotalNumberOfBytes;
ULARGE_INTEGER TotalNumberOfFreeBytes;
int nSelected = SendMessage(hListBox,LB_GETCURSEL,0,0);
SendMessage(hListBox,LB_GETTEXT,nSelected,(LPARAM)szBuf);
GetDiskFreeSpaceEx(szBuf,NULL,&TotalNumberOfBytes,&TotalNumberOfFreeBytes);
SendMessage(hEditTotal,WM_SETTEXT, 0,(LPARAM)(LPCSTR)TotalNumberOfBytes/1024);
//<-- error C2440:'type cast' : cannot convert from 'ULARGE_INTEGER' to 'LPCSTR'
//SendMessage(hEditFree,WM_SETTEXT, 0, (LPARAM)(LPCSTR)TotalNumberOfFreeBytes/1024);



Подскажите пожалуйста, как здесь нужно?

Сообщение отредактировано: 18192123 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 5:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name