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

Вниз

Короткий путь   Найти похожие ветки 

 
ArhAngel2 ©   (2002-08-21 19:25) [0]

Подскажите что я делаю не так
var
temp: PChar;
i: integer;
begin
...
i:=GetShortPathName(PChar("C:\Program Files"),temp,sizeof(@temp));
..
end;
Получаеться
i=12
temp=""


 
ZrenBy ©   (2002-08-21 19:31) [1]

GetMem(temp,254) делал ?


 
Anatoly Podgoretsky ©   (2002-08-21 19:45) [2]

Тебе надо к Пушкину обратиться, что бы выделил память под temp и к Лермонтову, что расказал, что sizeof вернет 4


 
Anatoly Podgoretsky ©   (2002-08-21 19:54) [3]

Но вообще то подход почти правильный, надо вместо 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;


 
ArhAngel2 ©   (2002-08-21 20:02) [4]

Все заработало. Спасибо большое!!!!



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-21233
Елена
2002-09-11 08:16
2002.10.07
Список последних документов в Windows


1-21074
liho26
2002-09-24 06:49
2002.10.07
Перехват нажатия клавиш из другого приложения


1-21016
wer1
2002-09-27 05:03
2002.10.07
Мастера подскажите! Нужно разделить строку 55,44 на 55 на , и 44


7-21295
Crane
2002-07-29 12:36
2002.10.07
Подскажите пожалуйста....


1-20962
alxx
2002-09-26 11:20
2002.10.07
Как узнать, когда закончилось перемещение окна?