我正在尝试使用SFML 2.1,C ++和MS Visual Studio Professional 2013将图像输出到屏幕上。我在尝试将文件加载到纹理时遇到意外错误。它输出一大堆随机字符。我确定它是如何配置Visual Studio的SFML库或代码的问题。有人能解决这个问题吗?感谢。
以下是我运行程序(http://i.stack.imgur.com/uMdLT.png)时的截图:
这是我的代码:
#include <SFML/Graphics.hpp>
#include <iostream>
#include <string>
using namespace std;
int main() {
sf::RenderWindow window;
window.create(sf::VideoMode(800, 600), "My First SFML Game!"); // initializing
sf::Texture jetTexture;
sf::Sprite jetImage;
// Getting Error here!
if (!jetTexture.loadFromFile("fighter jet.png"))
throw std::runtime_error("Could not load fighter jet.png");
jetImage.setTexture(jetTexture);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.draw(jetImage);
window.display();
}
return 0;
}
对于所有配置属性,它们如下所示:
链接器 - &gt;一般(http://i.stack.imgur.com/NZg7P.png):
链接器 - &gt;输入(http://i.stack.imgur.com/1tPaB.png):
**请注意,如果我没有按照我的方式配置SFML库,那么我的系统会收到msvcr110d.dll is missing
的错误。
答案 0 :(得分:6)
好的,我设法解决了这个问题,这就是你需要做的事情:
答案 1 :(得分:1)
您确定图片位于程序的执行目录中吗? 你应该避免使用文件名中的空格(fighter_jet.png)。
如果您不确定执行目录,请尝试使用绝对路径(确定它是路径问题,而不是图片问题)。
我希望它有所帮助。
我已经在我的系统(Xcode - OSX)上使用我的一张照片尝试了这个代码,并且它可以正常工作。 你试过另一张照片吗?
#include <SFML/Graphics.hpp>
#include <iostream>
#include <string>
using namespace std;
int main() {
sf::RenderWindow window;
window.create(sf::VideoMode(800, 600), "My First SFML Game!"); // initializing
sf::Texture jetTexture;
sf::Sprite jetImage;
// Getting Error here!
if (!jetTexture.loadFromFile("fighter jet.png"))
throw std::runtime_error("Could not load fighter jet.png");
jetImage.setTexture(jetTexture);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.draw(jetImage);
window.display();
}
return 0;
}