Sharfik писал(а):Программа это четкая структура, она не делает что то просто так. Если возврат не соответствует ожиданию, значит условия не соответствуют заданным программистом. Либо программист не учет работу системы безопасности ОС, либо запуск программы был не так как предусматривал программист. И т.п. Функция тут не причем.
Вот не надо сказок. Сколько раз было такое, что читая собственный код офигевал: а это действительно я написал? А функция здесь причём. В третьей версии компилятора в него внесли порчу из дельфей, а патчи сопротивления этой порче завезли не во все функции. Потому нет ничего удивительного, что они не всегда правильно вызывают путь запуска бинарника, в который помещены например скопипащенные из браузера utf-8 смайлики. А после малюсенького патча функция стала возвращать такой путь без порчи. Порча пути, она не как мёд, а или есть или нет, потому неправильность функции в рамках fpc 3+ выявлена чётко. Можешь в багтрекер писать, чтобы поменяли тип результата функции с string; на UnicodeString;
Sharfik писал(а): Функция тут не причем. Если я лох и не читаю доку по политикам Windows, то это мои проблемы.
К виндовой функции притензий нет, они есть к паскалевской в компиляторах выше третьей версии.
Sharfik писал(а):У меня так же не работало ПО, потому что его запускали не через ярлык, а через связанный файл. Но я не кричу что функция косячная. Нашел, дополнил условия такого запуска.
Программа должна работать не только у меня и там могут быть неанглийские символы в путях. И эта обвязка виндовой функции в каталогах с такими путями может обрезать часть пути, а это лютый звиздец и шишки на автора программы за то, что не смог и не обеспечил. Потому эту функцию для новых компиляторов нужно править.