错误:无法分配抽象类型的对象 'mySynth' VST 编程

error: cannot allocate an object of abstract type 'mySynth' VST Programming

本文关键字:对象 mySynth 编程 VST 类型 分配 抽象类 抽象 错误      更新时间:2023-10-16

对于一个项目,我被要求使用Steinberg SDK创建VST,我正在使用2.4版。

我遇到的问题是错误:

cannot allocate an object of abstract type 'mySynth'

尝试编译时,错误将我带到了代码的这一部分:

    AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
    {
            return new mySynth (audioMaster);
    }

我是C 和VST编程的初学者,我没有编译示例AGainADelay的问题,以及vstxSynth。这是我自己的第一次尝试,也是我的确使我感到困惑,从查看示例代码,我似乎找不到任何理由为什么不应该工作。

任何帮助将不胜感激。由于这对我来说是一条主要的学习曲线,因此,如果您可以尽可能简单的解释,我将不胜感激。

谢谢:)

没有看到类mySynth代码,很难说,但是当您拥有包含纯虚拟函数的类时,通常会遇到此错误。要么是从具有纯虚拟函数的基类派生的,因此未能通过派生的类实现覆盖它。

如果您不知道这意味着什么,请在类(和子类)中查看像这样声明的功能

 virtual int my_function() = 0;

这种函数是一个纯净的虚拟函数,一个具有一个类别的类被视为抽象类,无法实例化。为此,您需要提供实施。

您的processReplacing()方法在基类AudioEffect中没有正确地覆盖签名。签名看起来像这样:

void processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames);

您的替代使用double,它应该使用float