在我使用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) 窗口上也不会显示。
任何答案都值得赞赏。