2015-11-26 84 views
-1

所以,我在C++中使用SFML製作遊戲,但是當我嘗試添加一個圖像時,出現了一個非常奇怪的OpenGL(我認爲)錯誤。根本沒有任何意義。 首先我的控制檯與隨機文字和符號的垃圾郵件,然後應用程序崩潰和Visual Studio告訴我:運行我的SFML遊戲時出現奇怪的錯誤?

Exception thrown at 0x618EDBF4 (vcruntime140.dll) in SFML_Game.exe: 0xC0000005: Access violation reading location 0x00C54000. 

這聽起來像它有事情做與不能夠閱讀我說我的圖片文件,儘管我不知道與它有什麼不同。 圖像的位置是在同一個文件夾我的「SFML_Game.vcxproj」是。

我也沒有機會看到「無法加載播放器圖像」是否在控制檯中打印,因爲垃圾郵件太快。

編輯我可以看到,畫面未能立即加載,這裏有一個圖片...:

Console Picture

這裏是我當前的代碼:

#include<iostream> 
#include<SFML/Graphics.hpp> 
#include <string> 

int main(int argc, char* argv[]) 
{ 
    // Creates a window 
    sf::RenderWindow Window(sf::VideoMode(800, 600), "SFML Game Engine"); 

    sf::Texture pTexture; 
    sf::Sprite playerImage; 

    if (!pTexture.loadFromFile("Player.png")) 
    { 
     std::cout << "Could not load player image" << std::endl; 
    } 

    playerImage.setTexture(pTexture); 

    while (Window.isOpen()) 
    { 
     sf::Event Event; 
     while (Window.pollEvent(Event) && Window.hasFocus()) 
     { 
      switch (Event.type) 
      { 
      case sf::Event::Closed: 
       Window.close(); 
       break; 
      } 
     } 


     Window.draw(playerImage); 
     Window.display(); 
    } 
} 
+1

您測試了紋理是否無法加載,但繼續工作...您應該以更好的方式處理該錯誤。 –

+0

該文件的位置應該是應用程序的*工作目錄*。默認情況下,VS將其設置爲生成的.exe所在的目錄。您可以在「調試」下的項目選項中進行設置。 – molbdnilo

+0

@molbdnilo將它添加到exe文件所在的Debug文件夾中。它由於某種原因仍然無法加載圖像。 – BiiX

回答

-1

所以,似乎我的代碼很好,這是一個鏈接器錯誤。 我不知道靜態 - 動態庫,靜態庫和動態庫之間的區別,所以我只是把它們全部放在那裏,刪除它們之後開始工作。 至少在調試模式下。

非常多,如果有其他人有這個問題,請查看如何在他們的網站上設置SFML而不是視頻教程。 ^^