В настоящее время у меня есть шаблон проекта C ++, который содержит несколько предустановленных образов, определенных как массив байтов внутри кода. Я хочу реорганизовать проект путем перемещения изображений в ресурсы, но проблема в том, что скрипт .r c принимает только абсолютные пути к изображениям, поэтому я не совсем понимаю, как Могу ли я правильно использовать их для шаблона проекта. Все, что я хочу, это поместить файлы изображений где-нибудь в директорию проекта и ссылаться на них в сценарии проекта .r c, используя относительные пути для переносимости. Это вообще возможно?
VS2019 Community 16.5.4 btw.
UPDATE1: Мне нужно включить мои ресурсы во время компиляции, таким образом, Dynami c управление файлами - не вариант. У меня есть файл .r c в проекте и несколько изображений PNG внутри него. Они определяются с использованием абсолютных путей, таких как IDB_PNG1 PNG "D:\\absolute\\path\\to\\file.png"
. Проблема в том, что я не могу использовать пути относительно проекта , например IDB_PNG1 PNG "\\path\\inside\\project\\file.png"
, получая нулевую переносимость моих ресурсов в шаблоне.
UPDATE2: Одно возможное решение, которое я нашел, состоит в том, чтобы использовать элемент CustomParameter и записывать пути в файл .r c, например IDB_PNG1 PNG "$projectpath$\\path\\inside\\project\\file.png"
, затем установить ReplaceParameters=True
для файла .r c в .vstemplate. Но есть только $ projectname $ параметр по умолчанию, и я даже не уверен, что смогу сделать это для абсолютного пути.
UPDATE3 (ОТВЕТ): Благодаря этот вопрос, который я обнаружил, есть недокументированный параметр $solutiondirectory$
(надеюсь, MS не удалит его из будущих выпусков). Поэтому я просто записываю свои ресурсы как IDB_PNG1 PNG "$solutiondirectory$\\$projectname$\\path\\inside\\project\\file.png"
, и затем эти пути автоматически обновляются Visual Studio при создании проекта. Проблема решена!