对于一个项目,我被要求使用Steinberg SDK
创建VST
,我正在使用2.4版。
我遇到的问题是错误:
cannot allocate an object of abstract type 'mySynth'
。
尝试编译时,错误将我带到了代码的这一部分:
AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
{
return new mySynth (audioMaster);
}
我是C 和VST
编程的初学者,我没有编译示例AGain
和ADelay
的问题,以及vstxSynth
。这是我自己的第一次尝试,也是我的确使我感到困惑,从查看示例代码,我似乎找不到任何理由为什么不应该工作。
任何帮助将不胜感激。由于这对我来说是一条主要的学习曲线,因此,如果您可以尽可能简单的解释,我将不胜感激。
谢谢:)
没有看到类mySynth
代码,很难说,但是当您拥有包含纯虚拟函数的类时,通常会遇到此错误。要么是从具有纯虚拟函数的基类派生的,因此未能通过派生的类实现覆盖它。
如果您不知道这意味着什么,请在类(和子类)中查看像这样声明的功能
virtual int my_function() = 0;
这种函数是一个纯净的虚拟函数,一个具有一个类别的类被视为抽象类,无法实例化。为此,您需要提供实施。
您的processReplacing()
方法在基类AudioEffect
中没有正确地覆盖签名。签名看起来像这样:
void processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames);
您的替代使用double
,它应该使用float
。