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

Вниз

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

 
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 вся ветка

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

Наверх





Память: 0.44 MB
Время: 0.011 c
1-21050
Termit
2002-09-27 13:46
2002.10.07
Уничтожить компонент из собственного обработчика


4-21304
TimurHan
2002-08-20 03:54
2002.10.07
Как определить запущено ли еще приложение или уже закрыто ?


4-21298
LevVL
2002-08-19 11:28
2002.10.07
Здравствуйте, уважаемые коллеги! Вопрс не совсем простой...


3-20942
Ol11
2002-09-18 13:05
2002.10.07
Пожалуста Подскажите, Всегда ли нужно использовать клиент-сервер


3-20877
VictorT
2002-09-16 12:04
2002.10.07
Автоинкрементное поле





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский