ошибка: не удается выделить объект абстрактного типа ‘mySynth’ VST Programming

Для проекта меня просят создать 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, Это моя первая попытка, и она меня действительно смущает, глядя на пример кода, и я не могу найти причину, почему это не должно работать.

любая помощь будет принята с благодарностью. Поскольку для меня это основная кривая обучения, я был бы признателен, если бы вы могли подать заявление с максимально простыми объяснениями.

Спасибо 🙂

-1

Решение

Не видя класс mySynth Код трудно сказать, но эта ошибка обычно встречается, когда у вас есть класс, содержащий чисто виртуальную функцию. Либо это, либо вы унаследовали базовый класс с чисто виртуальной функцией и не смогли переопределить его с помощью реализации производного класса.

Если вы не знаете, что это значит, поищите в своем классе (и подклассах) функции, объявленные следующим образом

 virtual int my_function() = 0;

Этот тип функции является чисто виртуальной функцией, и класс, у которого она есть, считается абстрактным классом и не может быть создан. Для этого вам необходимо предоставить реализацию.

2

Другие решения

Ваш processReplacing() метод неправильно корректирует подпись, объявленную в базовом классе AudioEffect, Подпись выглядит так:

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

Ваше переопределение использует doubleследует использовать float вместо.

0

По вопросам рекламы [email protected]