簡體   English   中英

SDL-Image:無法打開圖像,只有錯誤消息

[英]SDL-Image: Couldn't open image, only error msg

Game Engine Creation課程作業,關於SDL的問題,目前正在學習C++ SDL。 遇到一個關於 SDL_Image 的問題,無法打開圖像。

當我運行代碼時它立即關閉

bool InitSDL()
{
    //Setup SDL
    if (SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        cout << "SDL did not initialise. Error: " << SDL_GetError();
        return false;
    }
    else
    {
        gWindow = SDL_CreateWindow(
            "GEC_SDL",
            SDL_WINDOWPOS_UNDEFINED,
            SDL_WINDOWPOS_UNDEFINED,
            SCREEN_WIDTH,
            SCREEN_HEIGHT,
            SDL_WINDOW_SHOWN
            );
        if (gWindow == NULL) 
        {
            cout << "Window was not created. Error: " << SDL_GetError();
            return false;
        }
    }

    gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED);
    if (gRenderer != NULL)
    {
        cout << "Renderer initialised." << endl;
        //Initialise PNG loading.
        int imageFlags = IMG_INIT_PNG;
        if (!(IMG_Init(imageFlags) & imageFlags))
        {
            cout << "SDL_Image could not initialise. Error: " << IMG_GetError;
            return false;
        }
        else {
            cout << "SDL_Image initialised." << endl;
        }
    }
    else
    {
        cout << "Renderer could not initialise. Error: " << SDL_GetError;
        return false;
    }

    gTexture = LoadTextureFromFile("D:/_a'Programs/School/GEC_SDL/GEC_SDL/Images/text.bmp");
    if (gTexture == NULL)
    {
        return false;
    }

    return true;
}

錯誤信息

嘗試完整路徑:D:_a'Programs\School\GEC_SDL\GEC_SDL\Images

錯誤信息

從文件 function 加載紋理

SDL_Texture* LoadTextureFromFile(string path)
{
    FreeTexture();

    SDL_Texture* pTexture = NULL;

    //Load the image.
    SDL_Surface* pSurface = IMG_Load( path.c_str() );
    if (pSurface != NULL)
    {
        //Create the texture from the pixels on the surface.
        pTexture = SDL_CreateTextureFromSurface(gRenderer, pSurface);
        if (pTexture == NULL)
        {
            cout << "Unable to create texture from surface. Error: " << SDL_GetError() << endl;
        }
        SDL_FreeSurface(pSurface);
    }
    else
    {
        cout << "Unable to create texture from surface. Error: " << IMG_GetError() << endl;
    }

    return pTexture;
}

我在論壇中搜索了類似的問題並嘗試了他們的方法,它們都不起作用,請幫助。

OMG,是的,這是'的問題,我重命名了文件夾,現在它可以工作了......

PS:愚蠢的字符集

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM