我正在尝试构建一个托管vst效果的小程序,我想扫描一个文件夹中的插件dll.
我知道如何找到所有的dll,但现在我有以下问题:
我知道如何找到所有的dll,但现在我有以下问题:
>确定给定dll是否为vst插件的最佳方法是什么?
我试着看看ddl是否导出了正确的函数,这适用于使用更新版本的vst sdk制作的插件,因为它导出了一个名为“VstPluginMain”的方法,但旧版本导出了一个相当通用的“main”函数.
>如何确定插件是效果还是乐器?
>如何扫描vst shell插件?
Shell插件基本上是以某种方式包含多种效果的dll.一个例子是Waves Audio http://www.waves.com/制作的插件
ps:如果有一个库可以为我做所有这些,请告诉我.
如何确定VST插件?
一旦你找到main / VSTPluginMain ……就叫它吧!如果返回的是NULL,则它不是VST.如果返回的是指向字节“VstP”的指针(参见aest.h中的VstInt32 magic; ///<必须是#kEffectMagic('VstP')),那么你有一个VST. VSTPluginMain返回指向AEffect结构的指针.您需要查看此结构. 效果还是仪器? AEffect :: flags | (effFlagsIsSynth = 1 << 8) Shell VST更复杂: 类别将是kPlugCategShell 支持“shellCategory”canDo. 使用effShellGetNextPlugin枚举. 例如,使用您想要的ID响应回调中的audioMasterCurrentId.