SDL错误,代码正确



这不是一个紧迫的问题,但在与SDL联系时,我只是想知道一些事情。

因此,我开始阅读本教程,并实现了以下代码片段:

SDL_Init(SDL_INIT_EVERYTHING);
SDL_Delay(2000);
SDL_Quit();

在教程中,据说控制台窗口应该在2秒钟后打开并关闭。我使用eclipse,运行时什么也没发生。这似乎是一个像这样的问题,但相比之下,我使用的是Linux。另一件事是,我可以从控制台运行它,它也不会发生任何事情。之后,我阅读了问题中的另一个教程,并插入了以下几行来创建一个窗口:

SDL_Window *window = 0;
window = SDL_CreateWindow("Hello World!",
                          SDL_WINDOWPOS_CENTERED,
                          SDL_WINDOWPOS_CENTERED,
                          640, 480,
                          SDL_WINDOW_SHOWN);

这并没有改变我的问题,没有显示任何窗口,但如果我将SDL_Init()的输出写入控制台,它在从eclipse运行时返回'0'(成功(,在从终端运行时返回'-1'(一些错误代码(。我从optirun开始(eclipse和终端中的最终程序(。

在那之后,我只是尝试实现教程的其余部分,并用SDL等创建了一个OpenGL窗口。我没有做任何其他更改,但它可以在eclipse和终端中工作,现在显示了窗口。

有人知道为什么现在这样做了吗?为什么eclipse和终端之间有区别?

什么意思?若您在运行程序时甚至并没有得到控制台窗口,那个么您可能应该请求它,即在VS上,它将是Linker->SubSystem->console。

另一件事是,我可以从控制台运行它,它也不会发生任何事情。

你预计会发生什么?控制台窗口已经打开,所以程序应该在2秒钟内什么都不做,然后退出。

从eclipse和"-1"运行时。。有人知道为什么现在这样做了吗?为什么eclipse和终端之间有区别?

调用SDL_GetError((并自行查找!:(

if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
    printf("SDL_Init failed: %sn", SDL_GetError());
}

最新更新