Пытаюсь сделать следующую вешь: Есть приложение с графическим интерфейсом QT. Приложение работает с платами PC104, в частности с платой реле DM6952HR (не суть). Хочется сделать эмулятор платы: если включён #include <rtd/Dm6952HrDevice.h>, то приложение работает с самой платой. А если, наприммер подключить <rtd/emul/Dm6952HrDevice_e.h>, то появляется окно Qt с отображением состояния реле. При этом остальной код не менять! В общем-то получилось. НО. Библиотека эмулятора не может использовать QApplication. Т.к. если в ней реализовать стандартные (...) QApplication *pApp = new QApplication( argc, argv ); QWidget *pWidget = new QWidget(); (...) то при обращении к библиотеке из основного процесса получаю ошибку "QApplication: There should be max one application object" и подвисшее приложение. Если убрать определение QApplication, то все нормально. Однако получается не гибко, ибо если основной процесс не будет использовать Qt, то программа наоборот требует QApplication. Собственно вопрос: как определить - есть-ли уже QApplication или нет? Это даст возможность написать универсальное решение.
|