hdxzd12 发表于 2023-12-29 20:13

如何用易语言开发一个VSTi插件

VSTi插件是一个Windows动态链接库,包含一个导出函数“main”

现在需要知道:
这个导出函数需要多少个参数?
这些参数的数据类型是什么?
这个函数的返回值是什么?
下面的是两个VSTi库
https://73327424.lanzouu.com/ieIAn1jbfoij
密码:doso

研究技术 发表于 2023-12-29 20:26

试试:
参数1整数型, 参数2文本型,参数3文本型

返回整数型

爱飞的猫 发表于 2023-12-29 20:50

找他的官方 sdk

lies2014 发表于 2023-12-29 21:32

要调用官方的SDK,下面是 VST3 的资料(VST2 已停止支持):
https://github.com/steinbergmedia/vst3sdk

DEATHTOUCH 发表于 2023-12-29 23:30

本帖最后由 DEATHTOUCH 于 2023-12-29 23:34 编辑

可以看我以前写的帖子https://www.52pojie.cn/thread-1458517-1-1.html,讲了VST2的基本原理
如果要VST3的话看我的GitHub仓库https://github.com/DrPeaboss/vst3-pas
不过都是用Pascal/Delphi实现的,不过理论上易语言把接口对上了都是可以的
我还在cnblogs发表过一个VST架构的分析https://www.cnblogs.com/PeaZomboss/p/17602092.html

顺便给你摘录cnblogs那篇文章的部分内容:

插件的入口函数一般是这么定义的:

```cpp
AEffect *VSTPluginMain(audioMasterCallback hostCallback)
{
    new MyPlugin(hostCallback)->getAEffect();
}
```

这里的`MyPlugin`是一个C++的类,参数就是`audioMasterCallback`的回调,然后调用`getAEffect`获取该类对应的`AEffect`结构体指针,每个插件的实例都要这样,不然插件之间会影响。

入口函数的名称除了`VSTPluginMain`也可以是`main`,一般只要前者,记得要在DLL导出,不同编译器有不同的方法。
页: [1]
查看完整版本: 如何用易语言开发一个VSTi插件