使用SDL2.0加载声音会导致MS Visual Studio中出现异常

时间:2017-10-21 16:39:15

标签: c++ visual-studio sdl-2 sdl-mixer

我有以下声音加载功能:

bool Sound::load(const char* fileName)
{
    sound = Mix_LoadWAV(fileName);
    if (sound == nullptr)
    {
        std::cout << "Failed to load sound at path: " << fileName << "SDL_mixer error: " << Mix_GetError();
        return false;
    }

return true;
}

在Dev-C ++中,这很好用。我想使用另一个IDE,所以我开始使用Visual Studio 2017,并为它配置了SDL2。但是,当我运行此代码时,从调用Mix_LoadWAV的那一刻起,Visual Studio提供以下内容: https://imgur.com/a/STnXx

我在互联网上搜索了很多,但我找不到任何有用的东西。

编辑:根据请求,我创建了一个仍然产生相同错误的最小示例。

#include "SDL2\SDL_mixer.h"
#include "SDL2\SDL.h"

#include <iostream>

#undef main

class SoundTest
{
private:
Mix_Chunk* sound = nullptr;
public:
bool load(const char* fileName)
{
    sound = Mix_LoadWAV(fileName);

    if (sound == nullptr)
    {
        std::cout << "Failed to load sound at path: " << fileName << "SDL_mixer error: " << Mix_GetError();
        return false;
    }

    return true;
}
};

SDL_Window *window = nullptr;

int main(int argc, char** argv)
{
    SDL_Init(SDL_INIT_EVERYTHING);

    window = SDL_CreateWindow("Sound bug? ", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 300, 300, SDL_WINDOW_SHOWN);

    Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 2048);

    SoundTest sound;
    sound.load("audio/soundEffect.wav");
    while (true)
    {
        //Do fun stuff with the sound
    }

    return 0;
}

0 个答案:

没有答案