在 Main.exe 中的 0x6FDFDBF0 (vcruntime140.dll) 引发异常
Exception thrown at 0x6FDFDBF0 (vcruntime140.dll) in Main.exe
我正在为C++的学校做一项作业,其中包含我们必须开始的骨架,其中还涉及我正确导入的 SFML 库。框架由 2 个.cpp文件、一个 .h 头文件和/Assets 中的所有文件组成。下面列出了三个文件。
主.cpp
#include "Game.h"
int main()
{
Game theGame;
theGame.loop();
return 0;
}
游戏.cpp
#include <iostream>
#include <fstream>
#include "Game.h"
Game::Game()
{
std::ifstream fileHndl;
fileHndl.open("Assets/mapdata.txt");
fileHndl >> mapCols;
fileHndl >> mapRows;
playerX = mapCols / 2;
playerY = mapRows / 2;
mapData = new int *[mapRows];
for (int i = 0; i < mapRows; i++) {
mapData[i] = new int[mapCols];
}
for (int i = 0; i < mapRows; i++) {
for (int j = 0; j < mapCols; j++) {
fileHndl >> mapData[i][j];
}
}
window.create(sf::VideoMode(1280, 1024), "COMP2501 Demo");
window.setFramerateLimit(5);
playerTexture.loadFromFile("Assets/actor.png");
playerTexture.setSmooth(true);
playerSprite.setTexture(this->playerTexture);
floorTexture.loadFromFile("Assets/floor.png");
floorTexture.setSmooth(true);
crateTexture.loadFromFile("Assets/crate.png");
crateTexture.setSmooth(true);
mapSprites = new sf::Sprite *[mapRows];
for (int i = 0; i < mapRows; i++) {
mapSprites[i] = new sf::Sprite[mapCols];
}
for (int i = 0; i < mapRows; i++)
{
for (int j = 0; j < mapCols; j++)
{
mapSprites[i][j].setPosition(j * 64, i * 64);
if (mapData[i][j] == 1)
{
mapSprites[i][j].setTexture(this->floorTexture);
}
else
{
mapSprites[i][j].setTexture(this->crateTexture);
}
}
}
}
Game::~Game()
{ }
void Game::loop()
{
while (window.isOpen())
{
inputs();
update();
render();
}
}
void Game::inputs()
{
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
window.close();
break;
}
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
{
if (this->mapData[this->playerX - 1][this->playerY] == 1)
{
this->playerX--;
}
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
if (this->mapData[this->playerX + 1][this->playerY] == 1)
{
this->playerX++;
}
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
if (this->mapData[this->playerX][this->playerY - 1] == 1)
{
this->playerY--;
}
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
{
if (this->mapData[this->playerX][this->playerY + 1] == 1)
{
this->playerY++;
}
}
}
void Game::update()
{ }
void Game::render()
{
playerSprite.setPosition(playerY * 64, playerX * 64);
window.clear();
for (int i = 0; i < mapRows; i++) {
for (int j = 0; j < mapCols; j++) {
window.draw(mapSprites[i][j]);
}
}
window.draw(playerSprite);
window.display();
}
游戏.h
#pragma once
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
class Game
{
public:
Game();
~Game();
void loop();
void inputs();
void update();
void render();
sf::RenderWindow window;
int playerX, playerY;
sf::Texture playerTexture;
sf::Sprite playerSprite;
int mapRows, mapCols;
int **mapData;
sf::Sprite **mapSprites;
sf::Texture floorTexture;
sf::Texture crateTexture;
};
该程序编译正确,但在运行时它给了我以下内容。
'Main.exe' (Win32): Loaded 'C:UsersAlexDocumentsVisual Studio 2015ProjectsMainDebugMain.exe'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ntdll.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64kernel32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64KernelBase.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:UsersAlexDocumentsVisual Studio 2015ProjectsMainDebugsfml-graphics-2.dll'. Module was built without symbols.
'Main.exe' (Win32): Loaded 'C:UsersAlexDocumentsVisual Studio 2015ProjectsMainDebugsfml-window-2.dll'. Module was built without symbols.
'Main.exe' (Win32): Loaded 'C:UsersAlexDocumentsVisual Studio 2015ProjectsMainDebugsfml-system-2.dll'. Module was built without symbols.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64winmm.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64msvcrt.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64user32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64gdi32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64lpk.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64usp10.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64advapi32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64sechost.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64rpcrt4.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64sspicli.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64cryptbase.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64msvcp140.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64vcruntime140.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-runtime-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ucrtbase.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-core-timezone-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-core-file-l2-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-core-localization-l1-2-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-core-synch-l1-2-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-core-processthreads-l1-1-1.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-core-file-l1-2-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-string-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-heap-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-stdio-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-convert-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-locale-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-math-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-multibyte-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-time-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-filesystem-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-environment-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64api-ms-win-crt-utility-l1-1-0.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64opengl32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64glu32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ddraw.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64dciman32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64setupapi.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64cfgmgr32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64oleaut32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ole32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64devobj.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64dwmapi.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64msvcp140d.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64vcruntime140d.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ucrtbased.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64imm32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64msctf.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64uxtheme.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64nvoglv32.dll'. Cannot find or open the PDB file.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64shell32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64shlwapi.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64wtsapi32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64version.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64dbghelp.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64gdi32.dll'. Symbols loaded.
'Main.exe' (Win32): Unloaded 'C:WindowsSysWOW64gdi32.dll'
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64wintrust.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64crypt32.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64msasn1.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ntmarta.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64Wldap32.dll'. Symbols loaded.
The thread 0x4c0 has exited with code 0 (0x0).
The thread 0x1be8 has exited with code 0 (0x0).
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64powrprof.dll'. Symbols loaded.
'Main.exe' (Win32): Unloaded 'C:WindowsSysWOW64powrprof.dll'
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64winsta.dll'. Symbols loaded.
The thread 0x1924 has exited with code 0 (0x0).
The thread 0x1b50 has exited with code 0 (0x0).
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64dinput.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64hid.dll'. Symbols loaded.
'Main.exe' (Win32): Loaded 'C:WindowsSysWOW64ole32.dll'. Symbols loaded.
'Main.exe' (Win32): Unloaded 'C:WindowsSysWOW64ole32.dll'
Exception thrown at 0x6FDFDBF0 (vcruntime140.dll) in Main.exe: 0xC0000005: Access violation reading location 0x00477000.
The program '[6440] Main.exe' has exited with code 0 (0x0).
vcruntime140.dll!memcpy(unsigned char * dst, unsigned char * src, unsigned long count) Line 634 Unknown
vcruntime140.dll!__vcrt_FlsGetValue(unsigned long) Line 401 C++
我已经查找了多种解决方案,例如重新安装 x64 和 x86 可重新分发的 Visual Studio 2015 并启用 Microsoft 符号,但我仍然收到此错误。它似乎是由 vcruntime140.dll 引起的。
我遇到了同样的问题。我将动态库作为其他依赖项包含在内:
sfml-graphics-d.lib
sfml-window-d.lib
sfml-system-d.lib
它有效。
但请记住,我的配置已设置为活动(调试)。
相关文章:
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 发生此错误:在0x0F2BFB7C(基于.dll)时引发异常 尝试更改大小是问题吗?
- 为什么g_object_set抛出异常(vcruntime140.dll)?
- 处理 c++ DLL 的异常
- 在OpenCV_core310.dll中使用findContours函数时,OpenCV引发未处理的异常
- 在 Project70.exe 中的0x0F4D514F (vcruntime140d.dll) 引发异常:0xC000
- 在0x5914F3BE抛出异常(基于.dll)
- 使用 C++ dll 运行 c# 应用程序会生成无法加载异常
- 核心消息传递中未处理的异常.dll在程序关闭期间
- 在 Hello World.exe 中0x0F828F0E (ucrtbased.dll) 处未处理的异常: 0xC00
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- 如何在C++中修复PyImport_Import(python35.dll中的异常)
- 加载C DLL文件时,如何修复异常_access_violation
- 实验室中0x6BE20E11 (ucrtbased.dll) 的未处理异常.exe: 0xC0000005:访问冲突读取
- 在 "<name>.exe" 中0x00007FFF168E1657 (vcruntime140d.dll) 引发异常:0xC0000005:访问冲突写入位置0x0000000000000
- mystring.exe中的0x0FC9E559(ucrtbaseed.dll)的未经手法异常:0xc0000005:访
- 当应用程序在不同系统上运行时,无法加载DLL异常