В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
VST.NET не для C ++. Откуда у вас эта идея? Перейдите в код VST.NET и проверьте образцы. Я надеюсь, что это станет понятным.
Архитектура плагина VST Штейнберга была долгое время, впервые выпущенная в 1996 году. Конечно, потребуется еще 6 лет, поэтому, конечно, много примеров кода на C ++. VST v3 использует COM, чтобы упростить разработку плагинов на языках, отличных от C ++.
Существует два вида COM, «чистый», основанный на интерфейсе IUnknown. И «практический» вид, основанный на IDispatch, иначе известный как OLE Automation или ActiveX, в наши дни называется Automation, поскольку распознавание имен для «ActiveX» больше не внушает уверенности:)
Язык C # работает очень хорошо с «практическим» видом. Что поддерживает библиотеки типов, формат файла, который описывает типы, реализованные COM-сервером. Очень проста в использовании в программе на C #, вы просто добавляете ссылку на библиотеку типов, и она действует как обычная сборка .NET. VST, однако, используют чистый вид, у вас нет удобной библиотеки типов, доступной для импорта деклараций интерфейса.
Написание плагинов на C # все еще возможно, вам нужно повторно объявить типы интерфейса VST на языке C # или использовать обертку C ++ / CLI для устранения разрыва. Довольно больно, чтобы понять это правильно, но это было сделано раньше. Как в этом проекте с открытым исходным кодом . Или этот . Не знаю, насколько они хороши, а не одобрение. Первая ссылка для VST.NET. Это управляемая оболочка, а не C ++. В любом случае, после компиляции он использует C ++ / CLI, чтобы позаботиться о нативном взаимодействии. Вторая оболочка не совсем пригодна для использования, поскольку для нее требуется SDK Steinberg. Это было прекращено совсем недавно. Разумеется, зловещий знак.
Причина проста. C ++ - один из языков высокого уровня самого низкого уровня. C # и Java часто являются лучшими инструментами для веб-приложения или бизнес-приложения. Никогда для мультимедийного приложения, где размер отпечатка экспоненциально и обратно пропорционален его производительности. ;)
Я хотел бы второй Obiwanjacobi. Я использую VST.Net в течение нескольких месяцев, и это отлично.
. Конечно, есть аргумент в пользу использования C ++, поскольку он позволяет более тонко контролировать управление ЦП. Но, это миф, чтобы сказать, что код C ++ обязательно быстрее кода C #. C # очень много работает для вас, как управление памятью и так далее. В основном, когда кто-то говорит, что C ++ быстрее, чем C #, они на самом деле не сравнивают яблоки с яблоками. Но, тем не менее, язык - это личный выбор.
Я думал, что добавлю эту ссылку, потому что если вы собираетесь создавать VST, вам понадобятся элементы управления. Вот набор элементов управления в бета-фазе. Они предназначены для VST. Они являются скинами и легкими.