SDL C++ IDE не может открыть файл .ttf

Я включил файл ttf в свой проект, скопировал этот ttf в папку отладки и в папку System32 и установил его в Windows. Я использовал другой источник C++, найденный в Интернете, он тоже не работает. НО Если я запускаю двоичный файл непосредственно из папки «Отладка» (не из IDE), он работает правильно.

Я использую CodeBlocks, SDL2.


person László Lukács    schedule 07.07.2016    source источник
comment
Рабочий каталог не выглядит там, где вы думаете.   -  person MikeCAT    schedule 07.07.2016


Ответы (1)


Пути, которые вы используете в своем коде, относятся к каталогу, из которого запускается ваше приложение.

Если ваш файл .ttf находится в том же каталоге, что и ваше приложение, вы должны использовать SDL_GetBasePath(), чтобы выяснить, где он находится:

char* p = SDL_GetBasePath();
if(p == nullptr) { /* TODO: error */ }
std::string ttfPath = std::string(p) + "myfont.ttf";
SDL_free(p); // TODO: exception safety
// now, you can open the file 
TTF_Font* f = TTF_OpenFont(ttfPath.c_str(), 42);
// ...
person user3684240    schedule 07.07.2016