【发布时间】: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 等检查了文件是否存在,但没有给出任何结果
-
你检查过其他字体吗?
-
我有,不幸的是问题仍然存在