17.11.2017, 19:11, "Thiago Macieira" <thiago.macie...@intel.com>: > On sexta-feira, 17 de novembro de 2017 00:17:29 PST Lorenz Haas wrote: >> you can't use two QCoreApplication instances in a single application, >> I know. There's also a nice warning: >> https://github.com/qt/qtbase/blob/5.10/src/corelib/kernel/qcoreapplication.c >> pp#L795. The reason, I guess, has to do with the static variables used in >> QCA (?). > > And all the other "static" variables stored in QCoreApplicationPrivate and > derived classes. > >> Now, however, please imagine the following scenario and please be >> assured that I am neither convinced by nor advising such an >> architecture: >> >> - Win32 based >> - Main Application uses Qt5 with QApplication >> - Shared library linked against Qt4 (Core) >> - Qt5-Application uses the library >> - This Qt4-linked library starts an Qt4-QCoreApplication (for being >> able to use Signal/Slots). > > Signals and slots do not require QCoreApplication.
But queued connections do (or is standalone QEventLoop enough?) > >> What are the technical reasons why you should also not do that, if >> there are? ... because static variables do not count in that scenario, >> at least I think so. > > You may need to do that if you have a plugin or a library component from a > third party whose sources you do not control. The above situation could happen > actually more commonly on Linux, where loading certain non-Qt libraries may > cause in turn Qt 4 to be loaded because it was expected to be there. > > On Linux, the above is a recipe for disastaer. The best outcome is that it > will quickly crash. > > On Windows, however, it is possible to load two libraries that have the same > symbols, since the symbol import tables name which DLLs to import the symbols > from. So a Qt5 DLL will not accidentally find Qt4 and vice-versa. > > Your problem will be the event loops. On Unix systems, I know they won't > integrate with each other. On Windows... I don't know. > > I personally do not recommend the above situation, but it may work. > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest