“SDL_SetVideoMode”:找不到标识符

Moy*_*yaa 3 c++ sdl visual-studio

我的 SDL 库有问题。我正在使用 VS2012 Ultimate,实际上我正在使用本教程: http: //lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php来设置所有内容,我一步一步地做了几次,但我仍然遇到问题是我的代码,非常简单:

#include <iostream> 
#include <SDL.h>

SDL_Surface * ekran = NULL;

int main (int argc, char *args [] )
{
   SDL_Init( SDL_INIT_EVERYTHING );
   ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
   SDL_Flip( ekran );
   SDL_Delay( 2000 );
   SDL_Quit();
   return 0;
} 
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

error C3861: 'SDL_SetVideoMode': identifier not found
error C3861: 'SDL_Flip': identifier not found
Run Code Online (Sandbox Code Playgroud)

Las*_*low 6

下面是如何替换 SDL2 中的 SDL_SetVideoMode() 的示例。初始化 SDL 的旧方法已被注释并与新方法一起保留以进行比较。基本上,SDL2 创建一个带有标题的窗口,然后附加一个表面,而 SDL1 单独创建一个表面,然后调用窗口管理器为其命名。

if (SDL_Init(SDL_INIT_VIDEO) < 0) {
    fprintf(stderr, "SDL video init failed: %s\n", SDL_GetError());
    return 1;
}

// SDL_Surface *screenSurface = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32, SDL_SWSURFACE);

SDL_Window* window = NULL;
SDL_Surface* screenSurface = NULL;

window = SDL_CreateWindow("Sphere Rendering", 
    SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 
    SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);

if (window == NULL) {
    fprintf(stderr, "Window could not be created: %s\n", SDL_GetError());
    return 1;
}

screenSurface = SDL_GetWindowSurface(window);

if (!screenSurface) {
    fprintf(stderr, "Screen surface could not be created: %s\n", SDL_GetError());
    SDL_Quit();
    return 1;
}

// SDL_WM_SetCaption("Sphere Rendering", NULL);
Run Code Online (Sandbox Code Playgroud)