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

Вниз

Снова DOS Path   Найти похожие ветки 

 
AlexanderMS ©   (2006-05-31 16:56) [0]

Я уже задавал здесь такой вопрос: как превратить строку пути в формате DOS (7 букв + тильда ~ в каждой секции) в нормальный виндоузовский путь. Мне предложили GetLongPathName:

> function GetLongPathName(lpszShortPath, lpszLongPath: PChar;
>  cchBuffer: DWORD): DWORD; stdcall; external "kernel32.dll";

- я оставил на потом, а когда попробовал осуществить - ошибка в RunTime: точка входа ... не найдена. Так и не понял. Подскажите, пожалуйста, как?


 
Джо ©   (2006-05-31 17:00) [1]

GetLongPathNameA


 
Джо ©   (2006-05-31 17:02) [2]

Т.е, например, так:

function GetLongPathName(lpszShortPath, lpszLongPath: PChar;
 cchBuffer: DWORD): DWORD; stdcall; external "kernel32.dll" name "GetLongPathNameA"


 
AlexanderMS ©   (2006-05-31 18:16) [3]

Я сделал так:
procedure TWindow.FormActivate(Sender: TObject);
var
 Longpath : PCHar;
begin
 if (paramstr(1) <> "") and (filename = "")
   then
     begin
       filename := paramstr(1);
       GetLongPathName(PChar(filename), LongPath, 0);
       Filename := String(LongPath);
       readfile
     end
   else newfile

end;


Путь нормальный, а имя файла какое-то странное: Lбi вместо generals.csf. Вот и ошибка выдаётся. Как сделать то же с именем файла?


 
begin...end ©   (2006-05-31 18:22) [4]

> AlexanderMS ©   (31.05.06 18:16) [3]

Вы не выделили память для буфера, связанного с LongPath.


 
Джо ©   (2006-05-31 18:24) [5]

Например, так:
var
 Longpath : array [0..MAX_PATH] of Char;

или выделять память динамически через GetMem и освобождать ее FreeMem, когда она уже не нужна.


 
AlexanderMS ©   (2006-05-31 19:22) [6]

Огромное спасибо! Всё получилось!



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
15-1148654663
Palladin
2006-05-26 18:44
2006.06.18
По поводу овертайма в хоккее


2-1149170626
Alex7
2006-06-01 18:03
2006.06.18
Удаление ненужных модулей


15-1148574620
Nic
2006-05-25 20:30
2006.06.18
P4 TITAN GA-8LD533 Series Intel 845GL - проблемы :(


11-1128549488
Юрий Ж.
2005-10-06 01:58
2006.06.18
Редактор с возможностью всавки картинок....


2-1149105731
Тимофеич
2006-06-01 00:02
2006.06.18
работа с текстом