SDL_DisplayFormatAlpha を呼び出そうとすると、ハンドルされない例外が発生します。
コード:
SDL_Surface* load_image ( char* filename ) {
SDL_Surface* loadedImage = NULL;
SDL_Surface* optimizedImage = NULL;
loadedImage = IMG_Load ( filename );
if ( loadedImage != NULL ) {
optimizedImage = SDL_DisplayFormatAlpha ( loadedImage );
SDL_FreeSurface ( loadedImage );
}
return optimizedImage;
}
bool init ( SDL_Surface*& screen ) {
//Initialize SDL
if ( SDL_Init ( SDL_INIT_EVERYTHING ) == -1 ) return false;
screen = SDL_SetVideoMode ( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_FULLSCREEN );
if ( screen == NULL ) return false;
//Set the caption
SDL_WM_SetCaption ( "Hero RPG", NULL );
return true;
}
主要:
int main ( int argc, char** argv ) {
init ( screen );
load_image ( "graphics\\background\\overworld" );
return 0;
}
他の:
コメントアウトしたら
//if ( loadedImage != NULL ) {
// optimizedImage = SDL_DisplayFormatAlpha ( loadedImage );
// SDL_FreeSurface ( loadedImage );
//}
変更する
loadedImage = IMG_Load ( filename );
に
optimizedImage = IMG_Load ( filename );
画像は正常に読み込まれます。したがって、ファイル名に問題がないことはわかっています。
質問:
これは、私が設計した最後のプログラムで使用した正確な関数であり、前回は正常に機能しました。これに対する答えは箱の外にあると思います。この未処理の例外を受け取るのはなぜですか?