我的窗口不会弹出。
控制台出现,并且没有打开窗口,只是说“应用程序已结束”
这是我的代码:
#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);
}
答案 0 :(得分:1)
idx
是您的错误。返回之后,由于order.get(idx)
结束,程序结束。返回之后,main中的任何行均不会执行。在调用SDL_CreateWindow之前,您当然不想结束。
Can a function continue after a return statement?
将代码更改为
return 0;
在main()
中返回0;可以从main中省略。
Can I omit return from main in C?
我还希望该代码在许多编译器上发出警告(关于无法访问的代码)。如果没有警告,则可能需要提高编译器的警告级别。如果确实发出警告,则需要更多注意警告。
您可能还希望删除全局变量,而是将变量设置为main局部。通常认为全局变量是一种不好的做法。
#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++