2016-04-03 4 views
0

私はSDL2でテキストレンダラーを作成しようとしています。そして、私は、テキストをupdateingていたときに、ゲームのすべてのフレームが、最終的にそれは私にこのエラーを与える:SDL_TTFとSDL 2が連携していません。未処理の例外を与える

Unhandled exception at 0x6C7B543D (SDL2.dll) in Games.exe: 0xC0000005: Access violation reading location 0x00000004. 

それは即座に私に例外を与えるものではありませんので、それは奇妙である、唯一のしばらく後に(この時点では異なるように見えます、そして、私はSDL_Mixerがそれを引き起こしていると思います)I「ブレーク」の例外は、私は、表面からテクスチャを作成するとき、これはライン)(エラーの原因となっているようだ時:

void Text::SetText(SDL_Renderer* rend, std::string message) 
    { 
     SDL_Color textCol = { Col.Red, Col.Green, Col.Blue, Col.Alpha }; 

     //Load image at specified path 
     SDL_Surface* loadedSurface = TTF_RenderText_Solid(font, message.c_str(), textCol); 
     if (loadedSurface == NULL) Debug::Fatal("Could not load text"); 

     //Create texture from surface pixels 
     /*EXCEPTION ON THIS LINE --->*/ SDL_Texture* newTexture = SDL_CreateTextureFromSurface(rend, loadedSurface); 

     if (newTexture == NULL) Debug::Fatal("Could not create texture from text"); 

     Scale.x = loadedSurface->w; 
     Scale.y = loadedSurface->h; 

     //Get rid of old loaded surface 
     SDL_FreeSurface(loadedSurface); 

     Texture = newTexture; 
    } 

私は32ビットを使用していますビジュアルスタジオ版のSDL_TTF。

このバグを修正するお手伝いができれば幸いです。ありがとうございました。

最終的に例外を出すことなく、テキストを読み込むことができます。

その他、このエラーがあったが、(私は更新レポにVisual Studioのバージョンを見つけることができないとして)解決策は役に立ちません:Getting SDL_ttf to play nice with SDL2

EDIT 1:

わずかにアップデートした後新しいバージョンのSDL_TTF 2エラーはまだ修正されていません。

EDIT 2:

呼び出した後:

SDL_GetError() 
IMG_GetError() 
TTF_GetEror() 

これは、コンソールで出力されます。

CreateTexture(): UNKNOWN 
CreateTexture(): UNKNOWN 
CreateTexture(): UNKNOWN 

"TTF_RenderText_Solid" はNULLを返しているようです。ちなみに、私はSDL_TTFの最新バージョンを使用しています。

+0

ここに投稿する前に最小限の例を抽出してください。副規則では、あなたの質問を話題から外す必要があります。 –

+0

@UlrichEckhardtさて、でもそれはどういう意味ですか? –

+0

"それ"とは何を指していますか? https://stackoverflow.com/help/on-topicをお読みください。 –

答えて

1

あなたが引用した投稿に示唆されているように、SDL2で動作するようにSDL_ttfバージョンを更新する必要があります。

ここでは、Visual Studio用のSDL_TTF SDL2バージョンがあります。 http://hg.libsdl.org/SDL_ttf/file/62fc3433538d/VisualC

SDL_ttf.slnには、SDL_ttfライブラリを構築することが許可されています。