SDL_CreateRenderer中的访问冲突

时间:2015-07-22 14:15:16

标签: sdl sdl-2

我使用vc ++ 2010 express并且正在处理项目,但是当我尝试使用SDL_CreateRenderer函数时,我收到此错误:

  

Oyun Projem.exe中0x6c8037be的第一次机会异常:0xC0000005:访问冲突读取位置0x00000010。   Oyun Projem.exe中0x6c8037be处的未处理异常:0xC0000005:访问冲突读取位置0x00000010。   该程序' [320] Oyun Projem.exe:Native'退出时使用代码-1073741819(0xc0000005)。

在这一行:

renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

这是代码

#include "stdafx.h"

int main(int argc, char* argv[])

{

SDL_Init(SDL_INIT_VIDEO);

SDL_Window *window;
SDL_Renderer *renderer;

window = NULL;
window = SDL_CreateWindow("My first RPG!", 100, 100, 100, 100, SDL_WINDOW_SHOWN);

renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

return 0;
}

以下是我在调试时看到的内容:

enter image description here

1 个答案:

答案 0 :(得分:0)

SDL_CreateWindow returns NULL if there is a failure。您的代码需要检查这一点。

// Your code:
window = SDL_CreateWindow("My first RPG!", 100, 100, 100, 100, SDL_WINDOW_SHOWN);

// Add the following:
// Check that the window was successfully made
if (window == NULL) {
    // In the event that the window could not be made...
    printf("Could not create window: %s\n", SDL_GetError());
    return 1;
}