Есть приложение, написанное на любом языке. Для приложения поддерживаются дополнения в виде dll с Си интерфейсом (тоже на любом языке). Фактически, всё подключениеdll происходит через вызов одной фукнции:
extern "C" __declspec( dllexport ) void * init(char* interface_name );
Эта функция должна как можно быстрее вернуть управление.
Мне нужно создать немодальный диалог. Как это правильно сделать без QApplication.exec()?
Пока что я предполагаю, что в фукнции init должен запускаться поток, в котором будет создан диалог и QEventLoop для обработки событий из диалога. Диалог будет получать и передавать данные через фукнции приложения (импортируемые Сишные фукнции), Qt для этого использоваться не будет. Qt нужен только для чтения/записи Json файлов и отображения диалога и его поддиалогов.
Это буквально невозможно. Любое взаимодействие с GUI в Qt требует обязательного создания экземпляра QApplication.
Потому что в виду сложной архитектуры и кучи абстракций, даже для простого рисования окошек, нужно запустить подсистему плагинов и загрузить плагин для венды.
То есть Qt невозможно исопользовать для dll? Не верю...
Или нужно создать поток и в этом потоке уже QApplication и вызвать exec? Про QEventLoop это прсто предположение, я не знаю, как это правильн оделается. QApplication могу создать статической, если это поможет.
Без потока точно не обойтись, ведь мне надо из функции вернуться сразу же.