Главная страница
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.06 c
1-1147437914
SergeNew
2006-05-12 16:45
2006.06.18
TStringGrid


15-1147792365
Копир
2006-05-16 19:12
2006.06.18
Здравствуйте товарищи!


2-1149059536
Perf2k2
2006-05-31 11:12
2006.06.18
Необходимо как-то хранить глобальную переменную с ее значением


2-1149200694
[stalker]
2006-06-02 02:24
2006.06.18
Проблемма с динамическим массивом


15-1148562577
Слоник
2006-05-25 17:09
2006.06.18
Абрамович + Шевченко