运行 我的 SFML 游戏出现奇怪的错误?
Weird error when running my SFML game?
所以,我正在使用 C++ 中的 SFML 制作游戏,但是当我尝试添加图像时,弹出了一个非常奇怪的 OpenGL(我认为)错误。根本没有任何意义。
首先我的控制台被随机文本和符号垃圾邮件,然后应用程序崩溃并且 visual studio 告诉我:
Exception thrown at 0x618EDBF4 (vcruntime140.dll) in SFML_Game.exe: 0xC0000005: Access violation reading location 0x00C54000.
听起来好像是我添加的图片文件无法读取有关,虽然我不知道是怎么回事。
图像的位置与我的 "SFML_Game.vcxproj" 所在的文件夹相同。
我也没有机会看到 "Could not load player image" 是否打印在控制台中,因为垃圾邮件太快了。
编辑我可以看到图片现在加载失败,这是一张图片...:
这是我当前的代码:
#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();
}
}
所以,看来我的代码没有问题,但这是一个链接器错误。
我不知道静态-动态、静态和动态库之间的区别,所以我只是把它们都放在那里,删除其中一些后它开始工作了。
至少在调试模式下。
差不多,如果其他人有这个问题,请在他们的网站上查看如何设置 SFML 而不是视频教程。 ^^
所以,我正在使用 C++ 中的 SFML 制作游戏,但是当我尝试添加图像时,弹出了一个非常奇怪的 OpenGL(我认为)错误。根本没有任何意义。 首先我的控制台被随机文本和符号垃圾邮件,然后应用程序崩溃并且 visual studio 告诉我:
Exception thrown at 0x618EDBF4 (vcruntime140.dll) in SFML_Game.exe: 0xC0000005: Access violation reading location 0x00C54000.
听起来好像是我添加的图片文件无法读取有关,虽然我不知道是怎么回事。 图像的位置与我的 "SFML_Game.vcxproj" 所在的文件夹相同。
我也没有机会看到 "Could not load player image" 是否打印在控制台中,因为垃圾邮件太快了。
编辑我可以看到图片现在加载失败,这是一张图片...:
这是我当前的代码:
#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();
}
}
所以,看来我的代码没有问题,但这是一个链接器错误。 我不知道静态-动态、静态和动态库之间的区别,所以我只是把它们都放在那里,删除其中一些后它开始工作了。 至少在调试模式下。
差不多,如果其他人有这个问题,请在他们的网站上查看如何设置 SFML 而不是视频教程。 ^^