QtGUIライブラリをVSTプラグインのユーザーインターフェイスとして使用したいと思います。VSTプラグインはWindows上のDLLです。ホストアプリケーションは、のようなものを含むDLL上のさまざまな関数を呼び出しますopenGUI()
。
DLLからQtGUIを使用する方法を知りたいです。私は可能なオプションを調べるためにいくつかの調査を行いましたが、制限について完全にはわかりません。
主な問題は、QApplication
オブジェクトを作成して呼び出す場所exec()
です(これは、アプリケーションが終了するまで戻らない関数です)。
私はこの投稿で与えられた解決策を見てきましたが、さらに読んだ後、CocoaはGUIが実行できる特定のスレッドについてより制限されているため、この解決策はMacOSXでは機能しないようです。それは本当にちょっとしたハックです。
私もこの解決策を見てきましたが、それは依存してQMfcApp
おりQWinWindow
、Qtライブラリの一部ではなくなったようです。
DLLが新しいアプリケーション自体を生成するためのこれを回避する唯一の方法はありますか?おそらくQProcess
、GUIアプリケーションとVST DLLの間で共有するために、呼び出しで開始し、共有メモリを使用することができますか?誰かがこのタイプの問題に遭遇しましたか?私はこれで悪い道を進んでいますか、それとも私がまだ考えていない何かがありますか?
アップデート
QAbstractEventDispatcher
さらに調査した後、私はクラスに出くわしました。を呼び出す代わりに、独自の(プラグインのホスト)イベントループから呼び出すことが可能であると言っているように見えるこの投稿を見ました。誰かがこれをやってみましたか?QApplication::processEvents()
QApplication::exec()