SDL Window 不会弹出
SDL Window won't pop up
我的window不会弹出。
控制台出现,没有打开window只是说"Application ended"
这是我的代码:
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_image.h>
#include <windows.h>
using namespace std;
SDL_Window * okno;
SDL_Surface * ekran;
SDL_Event zdarzenie;
int frame = 0;
int main(int argc, char*args[])
{
SDL_Init(SDL_INIT_EVERYTHING);
return 0;
okno = SDL_CreateWindow("SDL_TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, NULL);
ekran = SDL_GetWindowSurface(okno);
}
return 0;
是你的错误。在 return 之后程序结束,因为 main()
结束。在 return 之后没有执行 main 中的任何行。你当然不想在调用 SDL_CreateWindow.
之前结束
将代码更改为
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_image.h>
#include <windows.h>
using namespace std;
SDL_Window * okno;
SDL_Surface * ekran;
SDL_Event zdarzenie;
int frame = 0;
int main(int argc, char*args[])
{
SDL_Init(SDL_INIT_EVERYTHING);
okno = SDL_CreateWindow("SDL_TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, NULL);
ekran = SDL_GetWindowSurface(okno);
}
在c++
return0;可以从 main.
中省略
Can I omit return from main in C?
我还希望此代码在许多编译器上发出警告(关于无法访问的代码)。如果它没有发出警告,您可能需要调高编译器的警告级别。如果它确实警告你需要更加注意警告..
您可能还想删除全局变量,而是将变量设为 main 的局部变量。全局变量通常被认为是一种不好的做法。
Are global variables bad?
也 SDL_Init()
可能会失败。您可能需要检查其 return 值并在记录错误失败时退出。
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
SDL_Log("Unable to initialize SDL: %s", SDL_GetError());
return 1;
}
我的window不会弹出。
控制台出现,没有打开window只是说"Application ended"
这是我的代码:
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_image.h>
#include <windows.h>
using namespace std;
SDL_Window * okno;
SDL_Surface * ekran;
SDL_Event zdarzenie;
int frame = 0;
int main(int argc, char*args[])
{
SDL_Init(SDL_INIT_EVERYTHING);
return 0;
okno = SDL_CreateWindow("SDL_TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, NULL);
ekran = SDL_GetWindowSurface(okno);
}
return 0;
是你的错误。在 return 之后程序结束,因为 main()
结束。在 return 之后没有执行 main 中的任何行。你当然不想在调用 SDL_CreateWindow.
将代码更改为
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_image.h>
#include <windows.h>
using namespace std;
SDL_Window * okno;
SDL_Surface * ekran;
SDL_Event zdarzenie;
int frame = 0;
int main(int argc, char*args[])
{
SDL_Init(SDL_INIT_EVERYTHING);
okno = SDL_CreateWindow("SDL_TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, NULL);
ekran = SDL_GetWindowSurface(okno);
}
在c++
return0;可以从 main.
Can I omit return from main in C?
我还希望此代码在许多编译器上发出警告(关于无法访问的代码)。如果它没有发出警告,您可能需要调高编译器的警告级别。如果它确实警告你需要更加注意警告..
您可能还想删除全局变量,而是将变量设为 main 的局部变量。全局变量通常被认为是一种不好的做法。
Are global variables bad?
也 SDL_Init()
可能会失败。您可能需要检查其 return 值并在记录错误失败时退出。
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
SDL_Log("Unable to initialize SDL: %s", SDL_GetError());
return 1;
}