c++ - SFML 程序访问冲突读取位置
问题描述
我目前正在开发一个 2D SFML 游戏,但我遇到了访问冲突,我似乎无法理解。SpriteManager
创建课程时出现错误。
sf::Sprite *SpriteManager::getSprite(const std::string &name){
auto it = Sprites.find(name);
if (it == Sprites.end())
{
sf::Sprite *sp = NULL;
sf::Texture tex;
if (tex.loadFromFile(name))
{ //Access violation reading location
sp->setTexture(tex); //Get Access Violation here
setSprite(name, sp);
}
else {
return NULL;
}
delete tex;
return sp;
}
return it->second;
这里的目标是调用getSprite("filename")
,它应该检查它是否已经在我的无序精灵数组中,如果不是,它应该创建/加载纹理,将其分配给精灵,将精灵添加到数组并返回它。
抛出的确切异常是:
在 Game.exe 中的 0x0F314626 (sfml-graphics-d-2.dll) 处引发异常:0xC0000005:访问冲突读取位置 0x000000FC。
我正在参考这个 youtube 教程并将其转换为 SFML。 https://youtu.be/9pQ99zLKDx0?t=10m20s
我还收到有关此的各种其他错误sf::Texture tex
。如果我删除该sp->setTexture(tex);
行,我会在tex.loadFromFile(name)
.
我对编程还是很陌生,并且我没有太多解决访问冲突的经验。我很感激帮助。
解决方案
推荐阅读
- webpack - webpack,合并文件,然后将合并的文件传递给入口点
- javascript - 无法读取 React-Native-Phone-Input 库焦点函数的空错误属性“焦点”
- c++ - CreateProcessAsUser 和 createevent 权限
- html - addEventListener 和 onclick 功能不起作用
- ios - 最好在更改约束之前或之后调用 .layoutIfNeeded()
- swiftui - 如何在 macOS 上使用 SwiftUI 显示 QLPreviewPanel?
- python - 如何删除特定列中具有“非空值”的所有行?
- php - 我无法使用 Elastic Search 发出 AND 请求
- android - 如何使用导航从 bottomsheetdialog 导航到片段?
- c++ - C++ 错误:未定义对“的引用”
" 并且 ld 返回 1 个退出状态