繁体   English   中英

(C ++)函数未声明

[英](C++) Function not declaring

我是SDL的新手,我有一个函数bool init()。 我已经从lazyfoot.net学习SDL 2.0几天没有问题。 我一直在复制他们的代码,今天我尝试自己做。 (编辑:我知道有人说我有一个过时的头文件。事实并非如此,因为我已经能够使用SDL_WINDOWPOS_UNDEFINED和其他2.0功能,因为我安装了库)无论出于何种原因,这都行不通。

我正在使用Windows 7 Starter,Code :: Blocks(MinGW作为我的编译器)

当我(尝试)构建并运行时,第17行旁边有一个红色标记,就是这个。

bool init() {

这是完整的源代码。

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

const int SCREEN_WIDTH = 500;
const int SCREEN_HEIGHT = 500;

bool init();
bool loadMedia();
void quit();

int time = 5000;

SDL_Window* window = NULL;
SDL_Surface* surface = NULL;
SDL_Surface* topImage = NULL;

bool init() {
    bool success = true;
    if(SDL_Init(SDL_INIT_VIDEO) < 0) {
        std::cout << SDL_GetError() << std::endl;
        success = false;
    }
    else{
        SDL_CreateWindow("My Window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
        if(window == NULL) {
            std::cout << SDL_GetError() << std::endl;
            success = false;
        }
    }
    return success;
}

bool loadMedia() {
    bool success = true;
    surface = SDL_GetWindowSurface(window);
    if(surface == NULL) {
        std::cout << SDL_GetError() << std::endl;
        success = false;
    }
    else {
        topImage = SDL_LoadBMP("image.bmp");
        if(topImage = NULL) {
            std::cout << SDL_GetError() << std::endl;
            success = false;
        }
        else {
            SDL_BlitSurface(topImage, NULL, surface, NULL);
            SDL_UpdateWindowSurface(window);
            SDL_Delay(time);
        }
    }
    return success;
}

void quit() {
    SDL_FreeSurface(topImage);
    topImage = NULL;

    SDL_DestroyWindow(window);
    window = NULL;
    surface = NULL;

    SDL_Quit();
}

int main(int argc, char* args[]) {
if(init() == true) {
    init();
        if(loadMedia() == true) {
            loadMedia();
        }
    }
quit();
return 0;
}

您收到此错误:

error: 'SDL_WINDOWPOS_UNDEFINED' was not declared in this scope

这意味着您的旧版SDL包含标题。 SDL_WINDOWPOS_UNDEFINED在SDL 2.0版本中定义。

只需确保包含正确的标题,您可以从官方图书馆网站下载它们: http//www.libsdl.org/download-2.0.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM