这不是一个紧迫的问题,但在与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());
}