Seite 1 von 1

Weitere Probleme mit Qt in Dlls

Verfasst: 29. Januar 2007 02:21
von Takki
Ich habe ein weiteres Problem in meinem Projekt, welches sich aus mehreren Dlls (und natürlich einer Exe) zusammensetzt, die alle Qt benutzen. Und zwar bekomme ich folgende Warnung von Qt angezeigt:

Code: Alles auswählen

QObject::killTimer: timers cannot be stopped from another thread
Der dazugehörige Qt-Code, der diese Warnung ausgibt:

Code: Alles auswählen

QThread *currentThread = QThread::currentThread();
    if (thread() != currentThread) {
        qWarning("QObject::killTimer: timers cannot be stopped from another thread");
        return false;
    }
Auf den ersten Blick sollte das Problem ja lösbar sein - es hat mit Threads zutun, nur a) lege ich keine weiteren Threads an, b) legen Dlls von sich aus soweit ich weiß auch keine eigenen an. Also warum meint Qt nun, dass irgendwo Code in einem anderen Thread ausgeführt wird? Und viel wichtiger, wie löse ich das Problem? ;)

Gruß,
Daniel

Verfasst: 29. Januar 2007 10:14
von lepsai
Gibt es womöglich Instanzierung von QApplication in einer Dll?

Verfasst: 29. Januar 2007 14:40
von Takki
Nein gibt es eigentlich nicht (es ist übrigens eine Console-App, also QCoreApplication); das einzige Application-Objekt wird in der main() aus der Exe heraus erstellt.

Verfasst: 29. Januar 2007 14:53
von Christian81
Da Du ja sowieso schon die Qt-Dlls neu kompiliert hast, setz doch einfach einen Breakpoint auf die Fehlermeldung und schau Dir den Backtrace an - ggf. siehst du ja dann wo es herkommt. :)

Verfasst: 29. Januar 2007 22:33
von Takki
Also das Problem habe ich gelöst. Muss jetzt nurnoch rausfinden, wie ich das geschafft habe :)