C ++: добавление ресурсов в шаблон проекта - PullRequest
0 голосов
/ 27 апреля 2020

В настоящее время у меня есть шаблон проекта 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 при создании проекта. Проблема решена!

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Благодаря этому вопросу, который я обнаружил, есть недокументированный параметр $solutiondirectory$ (надеюсь, MS не удалит его из будущих выпусков). Поэтому я просто записываю свои ресурсы как IDB_PNG1 PNG "$solutiondirectory$\\$projectname$\\path\\inside\\project\\file.png", а затем эти пути автоматически обновляются Visual Studio при создании проекта. Проблема решена!

0 голосов
/ 27 апреля 2020

Предполагая, что вы используете файл .r c в контексте чего-то вроде изображения значка, это возможно. Вы можете просто использовать стандартную библиотеку для ссылки на файл изображения, а затем прочитать его побайтно и загрузить его в массивы, которые вы использовали ранее.

Если это не тот контекст, вы можете поделиться некоторым кодом для лучшее понимание.

...