我正在使用Windows 8.1機器上的VS2013進行開發。窗口在屏幕上短暫閃爍(儘管代碼有2秒延遲)。SDL2 Hello World教程關閉,並顯示錯誤
這裏是所有代碼:
#include <SDL.h>
#include <iostream>
int main(int argc, char **argv)
{
if (SDL_Init(SDL_INIT_EVERYTHING) != 0){
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 4;
}
//open a window
SDL_Window *win = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
if (win == nullptr){
std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
return 3;
}
//renderer
SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (ren == nullptr){
std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;
return 2;
}
//load bitmap
SDL_Surface *bmp = SDL_LoadBMP("helloworld.jpg");
if (bmp == nullptr){
std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl;
return 6;
}
SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, bmp);
SDL_FreeSurface(bmp);
if (tex == nullptr){
std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl;
return 5;
}
SDL_RenderClear(ren);
SDL_RenderCopy(ren, tex, NULL, NULL);
SDL_RenderPresent(ren);
SDL_Delay(2000);
return 0;
}
這將退出代碼6.我想這找不到helloworld.jpg文件。但是,它在那裏。我把它從一個地方搬到另一個地方,希望我只是一個白癡。沒有運氣。它目前與.exe文件位於同一目錄中。
您是否嘗試過使用調試器?當你做了什麼事,並且通過了代碼?它在哪一點意外行事?你還嘗試了什麼? –
確保進程的當前工作目錄是您正在執行該文件的目錄。而且,我要說,但請再次檢查文件名和擴展名。之前我被絆倒了。 –