1
我的SDL程序包含:过程在TTF_RenderText_Shaded行结束
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);
当我运行从代码::块的编译和运行按钮的程序,没有任何问题,但是当我运行从程序在Windows资源管理器中的文件夹,窗口直接打开和关闭,并且在窗口关闭后,进程不再运行,文件stderr.txt和stdout.txt仍然存在。我做了一些测试,发现它的行SDL_Surface *myText = TTF_RenderText_Shaded(font,"Some text",textColor,backgroundColor);
似乎结束了这个过程,就像在任务管理器中按下了End Process按钮一样。
它为什么这样做?我该如何解决它?
尝试得到确切的指令把字体 –
@ThomasAyoub感谢的绝对路径,那有效。问题在于字体的绝对路径取决于操作系统,我希望我的程序能够与任何操作系统兼容。在Windows中,它是'C:\ Windows \ Fonts \ segoeui.ttf',如果它在Linux或Mac中相同,它会让我感到惊讶。另一个问题是,也许用户在他的电脑上没有字体。我所做的解决这些问题的方法是将字体包含在项目中,并使用我发布的代码,但正如我在问题中所说的那样,这是行不通的。 –
应该与相对路径一致。可能您目前的工作目录并非您的想法,请使用例如[GetCurrentDirectory](https://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v = vs.85).aspx)for windows或'getcwd' for * nix。 – keltar