Как программно создать ярлык в MS VC++ 14.0 Windows 10?
Занимаюсь спортивным программированием. Сейчас решил себя попробовать немного в другом, и сразу столкнулся с проблемой: Допустим у меня есть программа в корне диска D:\app1.exe, на том же диске есть папка с другой программой D:\test\example.exe. Так вот: у меня программа app1.exe во время своей работы вызывает программу в папке test по пути .\test\example.exe (т. к. app1.exe находиться в корне D:\ то это то же самое, что и D:\test\example.exe). Программа example.exe в результате своей работы создаёт файл выходных данных, к примеру, output.txt; Проблема состоит в том, что при запуске app1.exe, который в свою очередь запускает example.exe, а эта программа создаёт файл output.txt, то файл output.txt создаётся в корне D:\, а не в папке, где находиться программа, создающая файл (должно быть в D:\test\). Выяснил, что при запуске программы example.exe через ярлык создаётся всё как надо. Поискал в интернете как программно создавать ярлыки на MS VC++(именно программно, в ручную никак), но после запуска кода появляется только файл с иероглифами в названии. Помогите, пожалуйста, найти код который будет работать. Желательно с описанием. Или, быть может, Вы знаете другой способ добиться желаемого результата? Заранее спасибо. Windows 10 Home MS VC++ 14.0 С++ 11
Вообще-то в этом веке за создание программой файлов в той же папке, где находится программа, бьют по пальцам рельсой.
Потому что даже до "подоконников" уже дошло, что папка, откуда что-то запускается, не должна быть доступна кому попало на запись.
Программа по умолчанию должна иметь право создавать какие бы то ни было файлы только по пути %APPDATA%/(название этой программы)/.
Ну, может спросить пользователя, куда он предпочитает этот файл сохранить.
А валить файлы себе же под ноги - это каменный век IT, и именно это неумение и нежелание организовать безопасное пространство - причина того, что по Виндам табунами ходят вирусы.
Даниил Демидко: Топикстартер заявил, что хотел бы попробовать уйти от спортивного программирования. Я, соответственно, решил, что вдохновляющий пендель в нужную сторону будет ему очень кстати...
Ну хорошо, построим вопрос по другому: При запуске программы из программы. У второй программы рабочей папкой является папка, где находиться программа, запускающая её. Так ясно, что я хочу?