引发未处理的异常:写访问冲突。错误

时间:2019-08-27 06:33:32

标签: c++ visual-studio visual-c++ visual-studio-2017

在调试从在线教程中记下的程序时,我遇到了错误,这是YouTube上一位独立编码员制作的声音合成器。我不确定是什么原因引起的,或者如何解决。我禁用了预编译的标题女巫,这是我遇到的第一个问题。

我尝试过在线搜索,导致我在这里向他人介绍其他人的代码,我尝试在多个不和谐的服务器上进行查询。 到目前为止没有运气。另外,这只是一项小练习,可以帮助我重回正轨。

Main.cpp

#include <iostream>
#include "olcNoiseMaker.h"
using namespace std;
double MakeNoise(double dTime) {
        return 0.5 * sin(540.0 * 2 * 3.14159 * dTime);
}
int main() {
    wcout << "onelonecoder.com - synth part 1" << endl;
    //Get all sound hardware
    vector<wstring> devices = olcNoiseMaker<short>::Enumerate();
    //Display finding
    for (auto d : devices) wcout << "Found output device:" << d << endl;
    //Create sound machine
    olcNoiseMaker<short> sound(devices[0], 44100, 1, 8, 512);
    //Link noise function whit machine
    sound.SetUserFunction(MakeNoise);
    return 0;
}

olcNoiseMaker.h仅用于获取声音芯片和bla bla。 您可以在这里观看他的视频:https://www.youtube.com/watch?v=tgamhuQnOkM&t=134s

运行该程序应导致540 KHz的连续正弦波 而是只播放一次,并给我这个错误:

引发未处理的异常:写访问冲突。 _Tgt 为0xA4EFF82C。发生

1 个答案:

答案 0 :(得分:0)

迟到了,但我遇到了这个问题(Visual Studio 2019)。当我构建并运行程序时,在程序退出之前只有一声短促的哔哔声。问题是我在 x64 调试配置中,这导致了错误。一旦我更改为 x86 调试,它就完美运行。

编辑:此外,在您的代码中,您在 while(1) {} 语句之后缺少 sound.SetUserFunction(MakeNoise);,这是使代码根据视频工作所需的。