sld — путь к папке ресурса для программы на c ++ [windows]

Структура моей версии Release моей программы на c ++

 | bin
| | game.exe
| content
| | sprites
| | | asset.png

В коде я передаю путь к ресурсу как «../content/sprites/asset.png», но он не найден программой. Что я делаю неправильно?

Дополнительная информация: я использую SLD2 в качестве вспомогательной библиотеки.

-2

Решение

Вы полагаетесь, что текущий каталог является каталогом, содержащим ваш двоичный файл, но это не всегда так. Вместо этого вы можете сделать это (проверка ошибок и диапазонов опущена для краткости):

WCHAR buf = new WCHAR [32768];   // allow for long path names
GetModuleFileNameW (NULL, buf, 32768);
WCHAR sep = wcsrchr (buf, '\\');
wcscpy (sep + 1, L"..\\content\\sprites\\asset.png");
...
delete [] buf;

Редактировать:

Если вы вызываете код, который зависит от текущего каталога, содержащего ваш двоичный файл, вы можете сделать это вместо этого где-нибудь в вашем коде инициализации:

WCHAR buf = new WCHAR [32768];   // allow for long path names
GetModuleFileNameW (NULL, buf, 32768);
WCHAR sep = wcsrchr (buf, '\\');
*sep = 0;
SetCurrentDirectoryW (buf);
delete [] buf;

Опять же, я пропустил проверку ошибок и диапазона для краткости.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]