Форум » [x]Harbour » Непонятки в хХарборе.... » Ответить

Непонятки в хХарборе....

Andrey: Столкнулся с проблемой определения (стартовой) директории программы. Функция CurDrive() + ":" + DirName() выдает разные и неправильный путь. Программа записана на D:\2222 При вызове из Far'a возвращает D:\Program Files\Far\ При вызове из проводника возвращает D:\\ Если запускаю программу с папки проекта, то все нормально: W:\HB_Project\MyProject\ С чем это связано ? Есть ли в хХарборе функция как в МиниГуи - GetStartupFolder() ? Использую - xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6406) Borland C++ 5.5.1 Если эта ошибка в хХарборе - просьба сообщить разработчикам !

Ответов - 5

Pasha: Не подтверждаю. У меня во всех случаях возвращается текущий каталог, которая совпадает с папкой, где находится программа. Эти функции и работают по текущему каталогу. Если текущий каталог отличается от папки, где находится программа, значит, его установили таким фар или проводник. Сообщить разработчикам не получится. Во-первых, непонятно, что сообщать. Во-вторых, чтобы что-то сообщить о проблемах в версии 1.2.1, понадобится машина времени. Сейчас версия немного другая. А насчет папки запуска - уже более 20-ти лет как есть же функция exename() из тузл.

Andrey: Pasha пишет: Не подтверждаю. У меня на 2х машинах такая вещь ! На Win7 и Win8. Буду делать отдельный пример и тестировать на других машинах. Pasha пишет: Сейчас версия немного другая. Понял. Pasha пишет: уже более 20-ти лет как есть же функция exename() из тузл. Да, я тоже её использую давно... Просто на другом проекте - "залетел" на грабли. Из-за этого и сообщил об этом.

Pasha: Andrey пишет: У меня на 2х машинах такая вещь ! На Win7 и Win8. Харбор тут ни при чем. Он не устанавливает текущий каталог программы. Это делает система, или процесс, который запускает программу (тот же фар). Я могу навскидку назвать пару причин, когда текущий каталог будет отличаться от каталога, где находится программа. 1. Запуск от имени администратора. В этом случае текущим будет что-то вроде system32 2. Если антивирус вдруг решит, что программа сомнительная, и запустит ее "в песочнице", каталог тоже будет другим. Может быть еще что-то.


PSP: Еще запуск посредством bat-ника, в котором производится смена папки

Vlad04: Я использую Left(EXENAME(),RAT("\",EXENAME())) xHarbour build 1.0.0 Определяется правильно на локальных и сетевых дисках, так же и относительный путь типа \\server\...



полная версия страницы