Hallo,
ich hab ein Problem beim aufrufen des Threads.
void MainWindow::tStartButtonHandler() {
Thread th = new Thread(mManipulator, ui.tableWidget);
th.start();
}
Bei dem Aufruf kommt eine Exception: "Umwandlung von "Thread" in nicht-skalaren Typen "Thread" angefordert". Wisst ihr vielleicht, was damit gemeint ist?
Exception bei Thread
Code: Alles auswählen
Thread *th = new Thread(mManipulator, ui.tableWidget); Probiers mal mit nem Pointer.
Zuletzt geändert von Alohis am 10. September 2010 10:53, insgesamt 2-mal geändert.
Weil du natürlich bei einem Pointer nicht mehr über den Punkt Operator auf die methoden zugreifen kannst sondern über den Pfeil.
Code: Alles auswählen
void MainWindow::tStartButtonHandler() {
Thread *th = new Thread(mManipulator, ui.tableWidget);
th->start();
} jetzt bekomme ich aber:
debug/moc_thread.o:(.rodata._ZTV6Thread[vtable for Thread]+0x14): undefined reference to `Thread::~Thread()'
make[1]: Leaving directory `/localhome/demo/QT-Projects/QtArmFinal'
debug/moc_thread.o:(.rodata._ZTV6Thread[vtable for Thread]+0x18): undefined reference to `Thread::~Thread()'
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [QtArmFinal] Fehler 1
make: *** [debug] Fehler 2
debug/moc_thread.o:(.rodata._ZTV6Thread[vtable for Thread]+0x14): undefined reference to `Thread::~Thread()'
make[1]: Leaving directory `/localhome/demo/QT-Projects/QtArmFinal'
debug/moc_thread.o:(.rodata._ZTV6Thread[vtable for Thread]+0x18): undefined reference to `Thread::~Thread()'
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [QtArmFinal] Fehler 1
make: *** [debug] Fehler 2
Das was du als "Exception" bezeichnest sind Fehler von Compiler bzw. Linker. Eine Exception ist ganz was anderes! Das ist eine Ausnahme zur Laufzeit. Eine Exception wirft man, und will man auf eine solche reagieren, fängt man diese mit "catch" im Code.
Lies dir das am besten nochmal durch im Buch deiner Wahl
Lies dir das am besten nochmal durch im Buch deiner Wahl