在过去十年中,我们使用 CAD 程序的 API 编写了不同的功能扩展(作为 DLL),都使用 QT。所有这些都用于其他目的,并且是各种 IDE(QTCreator / VS2010 / VS2015)中的单个项目。
显然,现在第一次,客户需要同时运行两个或三个这样的扩展 DLL。我们无法控制加载哪个 DLL(由个人用户决定)或加载顺序(由 CAD 应用程序决定)。
使用第二次加载的 DLL,我们会遇到运行时错误,因为 QT 主对象只能存在一次。奇怪的事情发生了。
问题: DLL 如何在开始时查询全局 QT 对象的存在(没有对它的引用),然后创建一个新对象或附加到现有对象?
抱歉,我们无法在 QT 文档中或通过询问 Ma Google 找到解决方案;QT 支持也无济于事。