2017-02-25 3 views
0

SDL_TTFフォントの読み込みに問題があります。 マイコード:SDL_ttf TTF_OpenFontがNULLを返します。

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()は "ライブラリが初期化されていません"を返します。私はLinker-Input-additional dependenciesをチェックします。 それは

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

私はデバッグモードでの値を確認が含まれています。 TTF_OpenFont 0xccccccccの前、0x00000000の後

何が問題なのですか?

答えて

1

SDL TTFを初期化していないようです。

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

この文字列を追加します。std :: cout << "TTF_INIT RETURNS:" << TTF_Init()<< std :: endl;このようにすることができます。コンソールで、TTF_INITの返り値を返してください:0 – AceMan

+0

@AceManこの行の前に行を追加しましたか? 'TTF_Font * font = TTF_OpenFont(" Arial.ttf "、24);'? – SurvivalMachine

+0

前後 – AceMan

関連する問題