Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

Где грабли? или GetLogicalDriveStrins и GetDriveType   Найти похожие ветки 

 
vlad_ri1   (2002-10-29 13:07) [0]

Почему данный код работает под Win2k и получаю False ROOT в Win98:
procedure TForm1.GetDrives;
var Buf: array[0..1023] of Char;
s: string;
BufLen: integer;
i: integer;
begin
Memo1.Lines.Append("Logical drives:");
GetLogicalDriveStrings(BufLen,Buf);
i:=0;
while buf[i]<>#0 do
begin
s:="";
while buf[i]<>#0 do
begin
s:=s+buf[i];
inc(i);
end;
case GetDriveType(PChar(s)) of
0: s:=s+" - UNKNOWN drive type";
1: s:=s+"False ROOT";
DRIVE_REMOVABLE: s:=s+" - removable drive (floppy)";
DRIVE_FIXED:
begin
{GetVolumeInformation}
s:=s+" - fixed drive (HDD)";
end;
DRIVE_REMOTE: s:=s+" - remote (network) drive";
DRIVE_CDROM: s:=s+" - CD-ROM drive";
DRIVE_RAMDISK: s:=s+" - RAM disk";
end;
Memo1.Lines.Append(s);
inc(i);
end;
Memo1.Lines.Append("");
end;

в SDK написано что обе функции работают как по NT так и под Win95/98.


 
Игорь Шевченко ©   (2002-10-29 13:26) [1]

Ошибка, как всегда, в ДНК:


var Buf: array[0..1023] of Char;
s: string;
BufLen: integer;
i: integer;
begin
Memo1.Lines.Append("Logical drives:");
GetLogicalDriveStrings(BufLen,Buf);


Функция GetLogicalDriveStrings требует первым параметром указывать размер буфера, а не неинициализированную переменную.

GetLogicalDriveStrings (sizeof(Buf), Buf) оно вернее будет.


 
vlad_ri1   (2002-10-29 19:29) [2]

Большое спасибо, следующий раз буду читать внимательней :)



Страницы: 1 вся ветка

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
7-36448
Алексей ВМ
2002-10-09 11:58
2002.12.12
Не подскажете, можно ли обратиться к звуковой


1-36212
AlexT1000
2002-11-29 14:08
2002.12.12
Как юзая FrameRgn отрисовывать выделение как в PhotoShop?


3-36046
oss
2002-11-14 11:54
2002.12.12
Packages & EhLib


4-36474
chernoruk
2002-10-30 18:20
2002.12.12
Как убить звук?


3-36004
genie
2002-11-21 12:06
2002.12.12
Как применить Scroll к DBGrid?