c++ - SDL_ttf TTF_OpenFont 返回 NULL

标签 c++

我在加载 SDL_TTF 字体时遇到问题。 我的代码:

TTF_Font* font = TTF_OpenFont( "Arial.ttf", 24 );
std::cout << "ERROR:" << TTF_GetError() << std::endl;
SDL_Color color = { 255, 255, 255, 255 };

SDL_Rect Message_Rect = { 400,400,100,100 };
SDL_Surface* surface = TTF_RenderText_Solid(font, "Text", color);
SDL_Texture* Message = SDL_CreateTextureFromSurface(Renderer, surface);
SDL_RenderCopy(Renderer, Message, NULL, &Message_Rect);

我在 Debug 文件夹中复制了 Arial.ttf。 TTF_GetError() 返回“库未初始化”。我检查链接器输入附加依赖项。 它包含

SDL2.lib  
SDL2main.lib  
SDL2_image.lib  
SDL2_mixer.lib  
SDL2_ttf.lib  

SDL 版本 2.0.5
SDL_image 版本 2.0.1
SDL_mixer 版本 2.0.1
SDL_ttf 版本 2.0.14

我在 Debug模式下检查值。 TTF_OpenFont 0xcccccccc 之前,0x00000000 之后

怎么了?

最佳答案

您似乎还没有初始化 SDL TTF。你可以这样做:

if (TTF_Init() < 0) {
    // Error handling code
}

关于c++ - SDL_ttf TTF_OpenFont 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42458020/

相关文章:

c++ - 函数返回值的内存分配和内存泄漏

java - 与 Java 的堆分配相比,为什么 C++ 堆分配这么慢?

C++:在不裁剪的情况下调整图像的 HSL

C++ 隐式转换为 bool

c++ - 确定派生类是否覆盖了基类的方法

c++ - 在 BOOST TEST 中添加测试套件而不是测试用例

c++ - OpenMP减少子句不适用于循环计数很大的int

c++ - 模板化二维数组错误

c++ - 如何查看我的应用程序是否需要提升权限?

c++ - 如何根据结构的字段之一对结构指针列表进行排序?