DLL中的Qt GUI环境(VST插件)

ogg*_*ter 17 c++ dll user-interface qt vst

我想使用Qt GUI库作为VST插件的用户界面.VST插件是Windows上的DLL.宿主应用程序调用DLL上的各种函数,包括类似的东西openGUI().

我想知道如何从DLL使用Qt GUI; 我做了一些研究来研究可能的选择,但我不完全确定这些限制.

主要问题是在哪里创建QApplication对象并对其进行调用exec()(这是一个在应用程序退出之前不会返回的函数).

我已经看过这篇文章中给出的解决方案了,但是经过进一步的阅读,看起来这个解决方案在Mac OS X上不起作用,因为Cocoa对GUI可以运行的特定线程更具限制性.这真是一个黑客攻击.

我也看过这个解决方案,但依赖于它,QMfcApp并且QWinWindow它似乎不再是Qt库的一部分.

这是我的DLL生成一个新的应用程序本身的唯一方法吗?据推测,我可以通过调用QProcess并使用一些共享内存在GUI应用程序和我的VST DLL之间共享来启动一个?有没有人遇到过这类问题?我是否会走这条路,或者有什么我还没想到的?

更新

经过进一步研究,我遇到了QAbstractEventDispatcher全班同学.我看过这篇文章似乎说可以QApplication::processEvents()从你自己(我的插件的主机)调用事件循环而不是调用QApplication::exec().有没有人试过这样做?

ksh*_*har 6

看起来你的实际问题是在Mac上使用Qt作为VST插件,因为据报道它可以在Windows上运行 - 请参阅此处(完整源代码树)和此处.

在Qt论坛上有关于在Mac上使用Qt for VST插件的成功报告,但另一方面在同一问题上有一个开放的bug.

我知道它没有回答你的问题,但我建议你去其他更适合VST插件的UI库,比如JUCEWDL.