Использование дескриптора Windows из одного процесса в другой (плагин VST аудио) - PullRequest
0 голосов
/ 10 апреля 2019

Я создал 64-битный плагин (VST JUCE), и он создает новый процесс, который является 32-битным приложением.В этом приложении я размещаю 32-битный плагин (VST JUCE).

Теперь мне интересно, можно ли заставить редактор 32-битного процесса прикрепить его редактор к дескриптору основного окна 64-битного плагина.Я мог бы передать оригинальный дескриптор окна, используя мой конвейерный процесс.И вызовите:

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

Код 14 открывает редактор.

Так что вопросWindows позволяет это?Или дескриптор окна является частным для каждой программы / процесса?

Если бы я мог это сделать, мне просто нужно выяснить, как преобразовать дескриптор окна void * в int64 и отправить его моему процессу.Там мне нужно конвертировать обратно из int64 в void *.

Спасибо.

1 Ответ

0 голосов
/ 10 апреля 2019

дескрипторы Windows являются глобальными (и также всегда имеют размер 4 ГБ, поэтому вы можете передавать их между приложениями x86 / x64), и вы можете сделать это , но при размещении плагинов VST делать это не рекомендуется.У вас будет некоторое время для маршалинга указателей между вашими приложениями, и VST SDK не предназначен для этого.

Решение, которому я следую, заключается в использовании простого взаимодействия (обычно COM, но вы также можете использовать File Mapping) для передачи данных между редактором и хостом.

...