Qt dans une DLL chargée à l'exécution
Bonjour,
J'ai une application principal, qui charge une dll perso qui embarque Qt.
L'application principale est chargé dans la dll.
J'ai donc une fonction comme ceci:
Code:
1 2 3 4 5
| int value = 0;
QApplication app(_Argc, _Argv);
MainWindow window;
return (value == 0); |
Cette fonction est le point d'entré de mon thread.
Lorsque je quitte le main principale, je me tape le warning suivant:
Citation:
QObject::~QObject: Timers cannot be stopped from another thread.
J'ai fouillé un peu sur internet, et il semblerait que ce soit parcequ'un QObject est détruit en dehors de mon thread dans lequel je créer l'application.
J'ai donc vérifier toute mes allocations, et à chaque fois, je supprime bien ce qu'il faut.
Sachant que si je retire la ligne concernant mainwindow, je n'ai plus l'erreurs.
J'ai beau chercher, je ne vois pas ce qui cloche. J'ai cherché aussi comment faire pour nettoyer proprement Qt avant de sortir du thread, mais sans succès.
Any idea?
PS: voici mainwindow:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
} |