我将ttf文件包含到我的项目中,我将此ttf复制到debug文件夹,并复制到System32文件夹,然后将其安装在Windows上。我使用了在互联网上找到的另一个C ++源代码,它不能正常工作。但是,如果我直接从“调试”(而不是从IDE)文件夹运行二进制文件,它可以正常工作。
我正在使用CodeBlocks,SDL2。
答案 0 :(得分: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);
// ...