我刚刚开始使用SFML(我的第一个,因此问题)的项目 当我运行程序时,它会在代码的第一行抛出一个AccessViolationException 我正在使用这个示例代码:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!"); // Dies here
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
程序在第一行执行后死亡 这是引发的异常信息:
Unhandled exception at 0x0F09EEB6 (sfml-system-d-2.dll)in
GameFromTutorial.exe: 0xC0000005: Access violation reading location 0xCCCCCCD8.
If there is a handler for this exception, the program may be safely continued.
我做过的一些配置(遵循他们网站上的教程和说明):
链接器 - &gt; General-&gt;其他库目录
C:\libs\SFML-2.3.1\lib;%(AdditionalLibraryDirectories)
链接器 - &gt;输入 - &gt;附加依赖项
sfml-system-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-audio-d.lib;%(AdditionalDependencies)
VC ++目录 - &gt;包含目录:
sfml-system-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-audio-d.lib;%(AdditionalDependencies)
VC ++目录 - &gt;图书馆目录
C:\libs\SFML-2.3.1\lib;C:\libs\boost_1_58_0\libs;$(LibraryPath)
在[VC ++目录 - >包含目录]中,我给出的是当我处于调试配置时。
Release配置没有'-d'后修复,双重检查。
编辑:我将sfml .dll文件放入我项目的调试文件夹中(按照教程中的命令,猜猜你不能像c#中那样添加c ++中的引用,所以看起来似乎)修复它给出的一些引用错误当你试图跑步时。
我尝试从文件夹中删除非'-d'文件,它没有任何改变。
我提供了关于此的每一条信息,
如果还有更多我可以提供的东西,请发表评论。
谢谢!