Символы экранируются при передаче в функцию SFML (Visual Studio 2022 c++)
Работаю с SFML уже не первый раз, и всё было нормально, пока я не установил обновление на VS. Также я устанавливал vcpkg, который использовал для другого проекта. Но после того как вернулся к SFML проекту, он перестал видеть библиотеки. Проект был сырым и заговнокоденным, поэтому я решил заодно и переписать его.
Ранее я скачивал SFML с оф. сайта и проводил стандартную процедуру установки:
1) Добавить папку с хедерами в дополнительные каталоги включаемых файлов
2) Добавить папку с либами в путь с доп каталогами библиотек
3) Добавить файлы sfml-audio-d.lib, sfml-graphics-d.lib, sfml-network-d.lib, sfml-system-d.lib, sfml-window-d.lib в зависимости и скопировать их в папку с проектом.
Теперь же для установки SFML я решил воспользоваться vcpkg, потому как сама VS предлагает этот вариант. Ставил командой vcpkg install boost-multiprecision:x64-windows, сам проект тоже х64.
После выполнил те же самые шаги. Только в названии .lib файлов уже не было "-d" на конце. Ещё я скопировал все .dll в папку с проектом, т.к. чето не работало без них.
В самом проекте мне нужно было загрузить фото из файла в sf::Image. Делал я это с помощью метода .loadFromFile(). имя файла хранилось в std::string. Моя функция приняла этот параметр без каких либо проишествий, но когда я зашел отладчиком в .loadFromFile(), то там вместо "SUAI.jpg" было "`\x18\xfищ\x1" и ошибка в консоли Failed to load image "". Reason: Unable to open file.
Путь к файлу верный, то есть лежит он в папке с проектом. Попробовал положить его в другую папку, и вызвать .loadFromFile("images/SUAI.jpg"), и ошибка в консоли изменилась на Failed to load image " Р$▄◄☻images/SUAI.jpg☼☼ ▐¶ыў⌂☺¶ыў⌂Pm↑ыў⌂8¤╤b1ў⌂8¤╤b1▌&рw~╜▄Б♠ыў⌂ ▐¶ыў⌂I¤♠ыў⌂3╬ ыў⌂m♂ыў⌂☺а♥!▄◄☻ )!▄◄☻РБ♠ыў⌂ю√♠ыў⌂Ё¶ыў⌂XЇ¶ыў⌂шv↑ыў⌂╨v↑ыў⌂о·♠ыў⌂▐¤♠ыў⌂¶v‼╝¤⌂╨яb1ё&d╜¤⌂0√ ш♦0√ ╨♦↓
(процесс 13108) завершил работу с кодом -1073741819.
сетлокаль не помог мне прочитать это послание
Скорее всего проблема связана с тем, что мне установилась релизная сборка SFML, в то время как проект в дебаг конфигурации. В таком случае вопрос превращается к "Как установить дебаг версию библиотеку SFML с помощью vcpkg (чтобы эта функция не была бесполезной)"
(Решено)
Проблема всё таки оказалась в релизной сборке библиотеки. Поставил старый добрый дебаг и все проблемы исчезли.
это похоже на мусор при отсутствии строкового терминатора в конце имени файла картинки.
или я ошибаюсь.
попробуй перед именем текущей папки поставить ./