流程以TTF_RenderText_Shaded行结束

时间:2016-07-07 10:50:48

标签: c sdl sdl-ttf

我的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按钮一样。

为什么这样做?我该如何解决?

1 个答案:

答案 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.

您可以在Detect Windows or Linux in C, C++

获取准确的指令