Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];

Вниз

Почему у меня не работает функция GetLogicalDrivestrings?   Найти похожие ветки 

 
AlDid   (2003-02-20 00:03) [0]

Уважаемые Мастера Delphi! Прошу Вашей помощи!!

Проблема у меня следующая:
Я хочу получить список логических дисков, имеющихся на машине. Но... Дело в том, что функция GetLogicalDrivestrings, по идее, должна их мне возвратить, но не обязана!
Если я ей передаю buffer типа array[0..255] of char, то она возвращает только "a:\", а если передаю buffer типа PChar, то она возвращает вообще не понятно что: "S>Ы>ьЛЫ|" или получаю Acceess Violation. Как быть?


procedure TForm1.Button1Click(Sender: TObject);
var buffer : array [0..255] of Char;
//buffer : Pchar;
begin
GetLogicalDrivestrings(SizeOf(buffer),buffer);
StaticText1.Caption:=buffer;
end;

Заранее спасибо огромное!


 
Anatoly Podgoretsky   (2003-02-20 00:14) [1]

Чему равен результат фвункции?
И посмотри хелп об ограничителях в строке(буфере)


 
AlDid   (2003-02-20 00:55) [2]

Результат функции равен 16.
16 - это длина в символах строки, скопированной в buffer...


 
jack128   (2003-02-20 04:58) [3]

а ты в сторону хелпа смотрел?
А между тем там англицким языком написано, что разделителем названий дисков является 0(ноль, null). Ясное дело у тебя выводится только первый диск...

ЗЫ кстати результат это не длина строки, скопированной в buffer, а необходимое кол-во памяти для копирования названий всех дисков...



 
[lamer]Barmaglot   (2003-02-20 09:40) [4]

procedure TForm1.Button1Click(Sender: TObject);
const
k: integer=0;
var
Buffer: Array of Char;
Counter: Integer;
begin
Counter:=GetLogicalDriveStrings(0,PChar(Buffer));
SetLength(Buffer, Counter);
GetLogicalDriveStrings(Counter,PChar(Buffer));
listbox1.Items.Add(PChar(Buffer));
Repeat
if (Buffer[k]=#0) then listbox1.Items.Add(PChar(@Buffer[k+1]));
inc(k);
until (Buffer[k]=#0) and (Buffer[k+1]=#0);
Buffer:=nil;
end;


 
AlDid   (2003-02-21 21:12) [5]

>[lamer]Barmaglot ! Большое тебе прибольшое спасибо! Все отлично работает :)



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

Форум: "WinAPI";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
9-67081
Ketmar
2002-11-08 18:31
2003.04.21
OpenGL: определение того, был ил отрисован хоть один пиксел...


9-67078
drhdh
2002-11-17 18:50
2003.04.21
Разрешение


1-67381
OlegM
2003-04-10 09:57
2003.04.21
Как любой файл просмотреть в hex


9-67067
Tihas
2002-11-22 01:33
2003.04.21
Вопросик по хранению 3D объектов в файлах.


3-67156
v.topalov
2003-04-03 13:24
2003.04.21
Пароль на базу InerBase?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский