为什么几秒钟后SDL窗口会自行关闭?

时间:2019-07-14 11:04:55

标签: c++ sdl-2

在我使用code :: blocks进行操作之前,我想在Visual Studio中使用C ++ SDL进行编码,并且没有任何问题。但是现在,当我在VS中运行代码(使用SDL以及SDL_Image,SDL_TTF,SDL_mixer等附加功能)后,SDL窗口会在几秒钟后自动关闭

我试图在代码中寻找可能引起这种情况的地方,但是并没有带我到任何地方。试图在网上查看,出现了有关立即关闭的问题,有人说这可能是由于DLL丢失引起的。我有些人失踪了,但填写他们并不能解决问题。

代码如下:


#include <iostream>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <SDL_mixer.h>
#include <Windows.h>

SDL_Window* okno;
SDL_Surface* ekran;

SDL_Event zdarzenie;

SDL_Rect* kwadrat_rect;

int frame = 0;

int main(int argc, char* argv[])
{
    SDL_Init(SDL_INIT_EVERYTHING);

    if (SDL_Init(SDL_INIT_EVERYTHING < 0))
    {
        std::cout << "Could not load SDL, Error code: " << SDL_GetError() << std::endl;
    }
    else { std::cout << "SDL Loaded sucessfully!" << std::endl; }

    okno = SDL_CreateWindow("SDL_Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1366, 768, NULL);
    ekran = SDL_GetWindowSurface(okno);



    while (true)
    {
        if (frame == 0)
        {
            SDL_Surface* kwadrat = IMG_Load("kwadrat.png");
            while (frame == 0)
            {
                while (SDL_PollEvent(&zdarzenie))
                {
                    if (zdarzenie.type == SDL_QUIT)
                    {
                        return 0;
                    }
                }

                kwadrat_rect->x = 0;
                kwadrat_rect->y = 0;
                SDL_BlitSurface(kwadrat, NULL, ekran, kwadrat_rect);

                SDL_UpdateWindowSurface(okno);
                SDL_Delay(16.666666);
            }
        }

    }
    return 0;
}

没有错误消息出现,并且如您在代码中看到的那样,有(SDL_Surface * kwadrat) 窗口上也不会显示。

任何答案都值得赞赏。

0 个答案:

没有答案