У меня есть библиотека C++, и я планирую добавить к ней необязательную функцию (включенную макросом), чтобы показать дополнительную информацию об отладке. Идея состоит в том, чтобы создать и открыть окно с Qt для отображения некоторых данных. Моя проблема в том, что у меня нет доступа к основной функции (это библиотека), поэтому я не могу создатьобъект Qt. Я попытался создать глобальные объекты, как это:Упростите QApplication за пределами основной функции (библиотека)
static int argc = 1;
static char argv[1][6] = {"myapp"};
static QApplication app(argc, (char**)argv);
Это работает, но сбой при выходе (на ~QApplication()
).
Другим вариантом будет выделение объекта в кучу и использование новых методов API для инициализации/завершения работы библиотеки. Но я вообще не хочу менять API.
Еще один будет выделяться в кучу в первый раз, когда мне нужно открыть окно и просто пропустить его. Но это не кажется хорошей идеей.
Любые идеи?
Я использую Qt 5.1 с GCC 4.8, ориентированным на Windows и Linux.
'QApplication :: instance()' предоставит вам доступ к той, которая определена в основном (если таковая имеется), как QCoreApplication –
Дело в том, что я не хочу заставлять пользователей библиотеки добавлять что-то их основной (или даже вообще Qt). –
вам понадобится поток для цикла событий, который необходимо будет остановить, когда приложение остановится –