我有以下一段代碼,其中有很多其他的東西(我沒有包含在這個主題中),我試圖啓動SDL,創建一個渲染和加載一些精靈。SDL_ConvertSurface()導致中斷
一切編譯得很好,但是當我跑我的應用程序中斷造成話說:0000005:在0x681252D5(SDL.dll)在加勒比世界SDL.exe 未處理的異常訪問衝突讀取位置0x16161804
的發生斷裂,並在那裏我使用SDL_ConvertSurface()函數點
誰能幫我了,我看不出有什麼不對
個Declerations:
SDL_Texture* background = NULL;
SDL_Surface* tmp = NULL;
SDL_Surface* surface = NULL;
SDL_Window *window = SDL_CreateWindow("Carribean World",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
1360, 768,
SDL_WINDOW_RESIZABLE);
SDL_Surface* screen = SDL_GetWindowSurface(window);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
SDL_PixelFormat* fmt = screen->format;
主: 初始化所有SDL子系統
if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
{
return 0;
}
載入圖像表面
if ((tmp = IMG_Load("images/water.jpg")) == NULL)
{
cout << "SDL_SetVideoMode() Failed: " << SDL_GetError() << endl;
return 0;
}
就在這裏休息造成
if ((surface = SDL_ConvertSurface(tmp, fmt, 0)) == NULL)
{
cout << "SDL_ConvertSurface() Failed: " << SDL_GetError() << endl;
}
background = SDL_CreateTextureFromSurface(renderer, tmp);
您不應該將'SDL_Init'的返回值與'-1'進行比較,因爲它只能保證爲負數,不一定爲'-1'。 – ooga 2014-11-25 00:53:27
我將它改爲<0,返回一條消息,但問題不存在,它仍然在** SDL_ConvertSurface ** – Panagiotis 2014-11-25 01:04:21
中斷什麼「返回消息」是什麼意思? – ooga 2014-11-25 01:30:43