SFML“未能创建字体”问题

SBE*_*SBE 5 c++ fonts sfml

我在 Visual Studio 2015 中使用 SFML 制作需要我打印文本的游戏。我尝试加载字体并不断收到错误消息,提示“无法创建字体”。我尝试加载几种不同的字体,但它们都不起作用,它们位于正确的目录中,即我的项目所在的文件夹。

这就是它的全部内容,它不起作用:

 sf::Font font;
    if (!font.loadFromFile("arial.ttf"))
        return EXIT_FAILURE;
Run Code Online (Sandbox Code Playgroud)

arial 的 ttf 文件与项目本身位于同一文件夹中,这似乎可以为我在网上找到的其他遇到相同问题的人解决问题。知道为什么字体仍然无法加载吗?

nvo*_*igt 5

简单的答案是,当您运行可执行文件时,该文件不在当前工作目录中。

尝试输入完全限定的文件名。它会起作用的。

使用 Visual Studio,这很可能是您的文件所在的目录.vcxproj。

如果这不起作用,您可以通过查看这篇文章了解如何找到当前目录的通用方法来找出您当前的工作目录。

作为一个快速技巧,您可以在程序启动时创建一个文件。启动一次并检查文件的创建位置。这是当前目录。