2012-08-16 29 views
0

我剛做完一些研究後就開始使用SDL。我從本教程開始http://lazyfoo.net/SDL_tutorials/lesson01/index2.php < <使用完全相同的代碼和bmp圖像。C++ SDL,爲什麼SDL_LoadBMP()返回NULL?

由於某些原因,當我在我的IDE(Microsoft Visual Studio)中調試並運行程序時,屏幕會加載,但應該在屏幕上彈出的圖片不會。但是,當我去我的項目並手動運行程序時,它會順利進行。做了一些研究後,發現SDL_LoadBMP()返回NULL(如果發生錯誤,則返回NULL)。但爲什麼?另外,我怎樣才能看到錯誤實際上是什麼?

回答

3

您試圖在正確的目錄中加載位圖嗎?從Visual Studio啓動程序時,它將從包含項目(.vcproj.vcxproj文件)的目錄中的當前工作目錄開始。確保你的路徑都是相對於那個目錄。

但是,如果通過雙擊Windows資源管理器中的可執行文件(默認情況下通常在Debug\Release\子目錄中)啓動,那麼它會從該文件夾的當前工作目錄開始。可能發生

+0

它與debug.exe位於同一目錄,可能是問題的一秒鐘。 – user1534664 2012-08-16 01:50:15

+0

謝謝你,你是對的。我不知道它應該和.vcproj在同一張地圖上! – user1534664 2012-08-16 01:53:52

1

幾個問題:

  1. 你已經安裝了SDL_image?
  2. 你在鏈接到SDL_image嗎?
  3. 你有沒有在正確的文件夾中的實際圖形文件?
  4. 你是不是在屏幕上?
  5. 您使用的是SDL_Flip嗎?
+0

3.是問題。事實證明,它使用.vcproj作爲其原始路徑。感謝您的努力。 – user1534664 2012-08-16 01:57:07

+0

沒問題,在我的遊戲中有時也發生在我身上。 – Annabelle 2012-08-16 01:59:07