为什么在 sfml 中加载字体时出现错误

问题描述 投票:0回答:2

我开始研究 SFML C++,我在 Visual Studio 2019 的 loadFromFile 行上收到错误“访问冲突读取位置”,但是我将字体文件保留在同一目录中,但仍然无法加载字体。

sf::Font font;
    
if (!font.loadFromFile("arial.ttf"))
{
    std::cout << "Error loading font !";
}
c++ fonts sfml
2个回答
0
投票

驱动器上字体文件的位置似乎没有问题。您提到的错误是 Visual Studio 在无法访问内存位置时给出的。如果这是您的字体,您会在程序的命令控制台中看到错误,例如:

Error loading font : Cannot find "xyz.ttf" 

至于解决方案,请检查您的链接器配置以及是否已解决所有依赖项。在您的情况下,您正在寻找的库是“freetype.lib”。以下是有关如何链接以及链接 SFML 库及其依赖项的正确顺序的正确指南


0
投票

已经晚了3年了,但我在使用它时也遇到了访问冲突。

如果您在本地函数中初始化字体并使用本地创建的字体调用

setFont
,则会导致崩溃,因为在函数执行后字体会被卸载。

Fix:
在字体上调用 new 并加载,或将其存储为使用该字体的类中的数据成员。

© www.soinside.com 2019 - 2024. All rights reserved.