[英]Using windows handle from one process into another (plugin vst audio)
我創建了一個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 *。
謝謝。
Windows句柄是全局的(並且始終在較低的4GB中,因此可以在x86 / x64應用程序之間進行傳輸),並且可以做到這一點,但是在托管VST插件時,不建議這樣做。 您將需要一些時間在應用程序之間編組指針,而VST SDK並不是在設計時考慮到這一點的。
我遵循的解決方案是使用普通互操作(通常是COM,但您也可以使用文件映射)在編輯器和主機之間傳輸數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.