【问题标题】:SFML Error loading font under WindowsSFML 在 Windows 下加载字体时出错
【发布时间】:2016-03-29 16:13:31
【问题描述】:

我一直在尝试使用 SFML 为 Windows 和 Linux 开发跨平台应用程序。到目前为止一切都很好,除了 Windows 版本似乎无法加载字体。但是,我在 Linux 下没有问题。 我做了我的研究并确保文件就位,根据我执行的位置,但 sf::Font::loadFromFile 仍然返回 false。

代码如下:

sf::Font _font;
sf::Text _text;

if (!(_font.loadFromFile("resources/fonts/arial.ttf")))
{
    std::cerr << "Error loading font '" + font + "'" << std::endl;
    return;
}
_text.setFont(_font);

你们知道我在这里做错了什么吗?

我使用的是 SFML 2.3,静态链接。

更新:loadFromFile 方法也不适用于纹理。我可以以编程方式检查文件是否到位,并使用 ifstreams 打开它们工作正常,但 SFML 似乎无法访问它们。

【问题讨论】:

  • 尝试使用绝对路径来确保您的文件已被找到
  • 附带说明,! 符号后面不需要额外的括号(即,if (!(_font.loadFromFile("resources/fonts/arial.ttf"))) 可以简化为 if (!_font.loadFromFile("resources/fonts/arial.ttf"))
  • 不幸的是,尝试绝对路径并不能解决问题...我使用 GetCurrentDirectory 等检查了文件是否存在,但没有给出任何结果
  • 你检查过其他字体吗?
  • 我有,不幸的是问题仍然存在

标签: c++ windows fonts sfml


【解决方案1】:

发现了问题,照例是我的错:我使用的是发布版本的库,但是我的 VS 项目处于调试状态!

【讨论】:

  • 谢谢 我遇到了同样的问题。这个问题很糟糕,因为调试不起作用。
【解决方案2】:

检查以确保您的文件位于正确的目录中,并确保拼写也准确无误。通常这是最常见的错误来源。

【讨论】:

  • 正如我在 cmets 中所说的,已经检查过......而且它在 Unix 中工作,考虑到我的项目树是用 CMake 设置的,两个版本的拼写是相同的......
猜你喜欢
  • 1970-01-01
  • 2020-11-05
  • 2020-06-01
  • 2021-06-09
  • 2018-08-26
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多