使用Windows从一个进程到另一个进程的句柄(插件vst音频)

时间:2019-04-10 18:45:19

标签: c++ windows plugins vst juce

我创建了一个64位插件(VST JUCE),它创建了一个32位应用程序的新进程。在此应用程序中,我托管一个32位插件(VST JUCE)。

现在我想知道是否有可能使32位进程的编辑器将其编辑器附加到主要的64位插件窗口句柄。我可以使用管道过程传递原始的窗口句柄。并致电:

VSTPluginFormat :: dispatcher(pluginLoad,14,0,0,windowHandle,0);

代码14打开编辑器。

所以问题是,Windows允许吗?还是Windows对每个程序/进程都专用?

如果可以这样做,我只需要弄清楚如何将Windows句柄void *转换为int64并将其发送到我的进程即可。在那里,我需要从int64转换回void *。

谢谢。

1 个答案:

答案 0 :(得分:0)

Windows句柄是全局的(并且始终在较低的4GB中,因此您可以在x86 / x64应用程序之间进行传输)和您can do it,但是在托管VST插件时不建议这样做。您将需要一些时间在应用程序之间编组指针,而VST SDK并非是出于这种考虑而设计的。

我遵循的解决方案是使用普通互操作(通常是COM,但您也可以使用文件映射)在编辑器和主机之间传输数据。