Для проекта меня просят создать VST
с использованием Steinberg SDK
Я использую версию 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
вместо.