我在 Visual Studio 2015 中使用 SFML 制作需要我打印文本的游戏。我尝试加载字体并不断收到“创建字体失败”的错误消息。我尝试加载几种不同的字体,但它们都不起作用,它们位于正确的目录中,这是我的项目所在的文件夹。
这就是它的全部内容,但它不起作用:
sf::Font font;
if (!font.loadFromFile("arial.ttf"))
return EXIT_FAILURE;
arial 的 ttf 文件与项目本身位于同一文件夹中,这似乎可以解决我在网上找到的其他有相同问题的其他人的问题。知道为什么字体仍然无法加载吗?
原文由 SBE 发布,翻译遵循 CC BY-SA 4.0 许可协议
简单的答案是,当您运行可执行文件时,该文件 不在 您当前的工作目录中。
尝试输入一个完全限定的文件名。它会起作用的。
使用 Visual Studio,这很可能是您的
.vcxproj
文件所在的目录。如果这不起作用,您可以通过查看 这篇 文章了解您当前的工作目录是什么,以了解如何找出当前目录的通用方法。
作为一个快速破解,您可以在程序启动时创建一个文件。启动一次并检查文件的创建位置。这是当前目录。