我的SDL程序包含:
TTF_Init();
TTF_Font *font = TTF_OpenFont("segoeui.ttf",13);
SDL_Color textColor = {0,0,0};
SDL_Color backgroundColor = {34,177,76};
SDL_Surface *myText = TTF_RenderText_Shaded(font,"Some text",textColor,backgroundColor);
当我从Code :: Blocks中的Build and run按钮运行程序时,没有任何问题但是当我从Windows资源管理器中的文件夹运行程序时,窗口会直接打开和关闭,之后窗口关闭,进程不再运行,文件stderr.txt和stdout.txt仍然存在。我已经做了一些测试,发现它似乎结束了这个过程的行SDL_Surface *myText = TTF_RenderText_Shaded(font,"Some text",textColor,backgroundColor);
,就好像在任务管理器中按下了End Process按钮一样。
为什么这样做?我该如何解决?
答案 0 :(得分:1)
您应该使用绝对路径设置字体,而不是相对路径。如果您计划进行跨平台部署,则可能需要包含以下内容:
TTF_Font *font;
#ifdef _WIN32
font = TTF_OpenFont("WinPath",13); // The windows path
#elif linux
font = TTF_OpenFont("LinuxPaht",13); // The linux path
#elif MacOS
font = TTF_OpenFont("Mac path",13); // The mac path
#endif
if(font == null)
// Throw an error, return or whatever.
获取准确的指令