嘿,我最近几年都在一个教程中开始使用c ++。我在主程序中对.wav文件使用SFML时遇到问题(这是具有相同问题的简化程序)。该文件与项目位于同一文件夹中,这是目录的外观,名称拼写相同。我正在使用最新的SFML和Visual Studio2017。请原谅我,如果上传看起来很奇怪,这是我第一次在这里发布。
#include "pch.h"
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
using namespace sf;
int main()
{
VideoMode vm(1920,1080);
RenderWindow window(vm, "SpriteTest", Style::Fullscreen);
//****ERROR SHOWS HERE****
sf::SoundBuffer chop;
if (!chop.loadFromFile("audio/chop.wav"))
{
std::cout << "ERROR LOADING AUDIO" << std::endl;
}
sf::Sound chopNoise;
chopNoise.setBuffer(chop);
//****THIS IS THE ERROR
/*Exception thrown at 0x6A36E344 (vcruntime140.dll) in sprite tester.exe: 0xC0000005: Access violation reading location 0x005C5000.
my .wav file is in the audio file in the project file which is where the working directory is
*/
// shield test
Texture shield;
shield.loadFromFile("graphics/shield.png");
Sprite shieldSprite;
shieldSprite.setTexture(shield);
shieldSprite.setPosition(1500, 800);
//background test
Texture backgroundTexture;
backgroundTexture.loadFromFile("graphics/background2.png");
Sprite background;
background.setTexture(backgroundTexture);
background.setPosition(0, 0);
//lazer test
Texture lazerTexture;
lazerTexture.loadFromFile("graphics/lazer2.png");
Sprite lazerSprite;
lazerSprite.setTexture(lazerTexture);
lazerSprite.setPosition(200, 500);
while (window.isOpen())
{
if (Keyboard::isKeyPressed(Keyboard::Escape))
window.close();
if (Keyboard::isKeyPressed(Keyboard::Right))
{
}
window.clear();
window.draw(background);
window.draw(shieldSprite);
window.draw(lazerSprite);
window.display();
}
}
输出文件:: S
'sprite tester.exe'(Win32):已加载'C:\ Users \ kyle9 \ Desktop \ Game开发书中的东西\ Visual Studios中的东西\ sprite tester \ Debug \ sprite tester.exe'。符号已加载。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ ntdll.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ kernel32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ KernelBase.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios \ sprite tester \ sprite tester \ sfml-graphics-d-2.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ msvcp140d.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ vcruntime140d.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ ucrtbased.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-window-d-2.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-window-d-2.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已卸载'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-window-d-2.dll' 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-system-d-2.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-audio-2.dll'。模块的构建没有符号。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ gdi32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ gdi32full.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ msvcp_win.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ ucrtbase.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ opengl32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ user32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ msvcrt.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ win32u.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ advapi32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ sechost.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ rpcrt4.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ sspicli.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ winmm.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ winmm.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):卸载'C:\ Windows \ SysWOW64 \ winmm.dll' 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ cryptbase.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ bcryptprimitives.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ msvcp140.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ vcruntime140.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ winmmbase.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ cfgmgr32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ glu32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-system-d-2.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已卸载'C:\ Users \ kyle9 \ Desktop \ Game开发书资料\ Visual Studios资料\ sprite tester \ sprite tester \ sfml-system-d-2.dll' 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书材料\ Visual Studios材料\ sprite tester \ sprite tester \ sfml-system-2.dll'。模块的构建没有符号。 'sprite tester.exe'(Win32):加载了'C:\ Users \ kyle9 \ Desktop \ Game开发书资料\ Visual Studios \ sprite tester \ sprite tester \ openal32.dll'。模块的构建没有符号。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ shell32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ SHCore.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ combase.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ windows.storage.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ shlwapi.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ kernel.appcore.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ profapi.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ powrprof.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ fltLib.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ ole32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ imm32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ uxtheme.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ msctf.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ oleaut32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ System32 \ DriverStore \ FileRepository \ igdlh64.inf_amd64_b9b9c39e4e2b88eb \ ig9icd32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ wtsapi32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ dwmapi.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ version.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):卸载'C:\ Windows \ SysWOW64 \ version.dll' 'sprite tester.exe'(Win32):已加载'C:\ Windows \ System32 \ DriverStore \ FileRepository \ igdlh64.inf_amd64_b9b9c39e4e2b88eb \ igc32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ dinput8.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ hid.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ setupapi.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ devobj.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ InputHost.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ WinTypes.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ CoreMessaging.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ CoreUIComponents.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ ntmarta.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ wintrust.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ msasn1.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ crypt32.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ TextInputFramework.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ oleacc.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ clbcatq.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ MMDevAPI.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ propsys.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ AudioSes.dll'。找不到或打开PDB文件。 'sprite tester.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ avrt.dll'。找不到或打开PDB文件。 在Sprite Tester.exe中的0x640DE340(vcruntime140.dll)处引发异常:0xC0000005:访问冲突读取位置0x00B00000。