![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Короткий путь [D6]
ArhAngel2 © (2002-08-21 19:25:00)Подскажите что я делаю не так
var
temp: PChar;
i: integer;
begin
...
i:=GetShortPathName(PChar("C:\Program Files"),temp,sizeof(@temp));
..
end;
Получаеться
i=12
temp=""
ArhAngel2 (2002-08-21 20:02:00) [1]Все заработало. Спасибо большое!!!!
Anatoly Podgoretsky (2002-08-21 19:54:00) [2]Но вообще то подход почти правильный, надо вместо sizeof(@temp)); передавать 0, а затем
GetMem(temp,I+1);
i:=GetShortPathName("C:\Program Files",temp,I));
Дополнительно нужно проверять на ошибки и обрамить код выделения ресурсов в try блок, что бы не потерять память, в итоге это будет выглядеть так:
begin
...
I := GetShortPathName("C:\Program Files", Temp, 0);
if I <> 0 then
try
GetMem(Temp, I+1);
I := GetShortPathName("C:\Program Files",temp,I));
finally
FreeMem(Temp,I+1);
end
else
Ошибка
..
end;
Anatoly Podgoretsky (2002-08-21 19:45:00) [3]Тебе надо к Пушкину обратиться, что бы выделил память под temp и к Лермонтову, что расказал, что sizeof вернет 4
ZrenBy (2002-08-21 19:31:00) [4]GetMem(temp,254) делал ?