【问题标题】:Unhandled exception thrown: write access violation. Error抛出未处理的异常:写访问冲突。错误
【发布时间】:2019-12-31 06:59:03
【问题描述】:

我在调试我从在线教程中写下的程序时出错,它是由 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。发生了

【问题讨论】:

  • wcout &lt;&lt; "Found output device:" &lt;&lt; d &lt;&lt; endl; 行的输出是什么?
  • 输出是:onelonecoder.com - synth part 1 找到输出设备:Speakers (Realtek High Definiti
  • 您发布的代码没有问题。错误出现在您从 Internet 下载的第三方代码中(不足为奇)。由于您尚未发布该代码,因此很难提供帮助。
  • 有什么办法解决吗?

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


【解决方案1】:

回答晚了,但我遇到了这个问题(Visual Studio 2019)。当我构建并运行程序时,程序退出前只有一声短促的哔哔声。问题是我在 x64 调试配置中,这导致了错误。一旦我更改为 x86 Debug,它就可以正常工作了。

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

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 2021-10-26
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2021-07-12
    • 2018-11-16
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多