Hallo zusammen!

Ich bin mir nicht ganz sicher, ob das Problem wirklich Qt spezifisch ist, allerdings denke ich das eine Lösung mit Hilfe von Qt (rtti()) möglich wäre, daher habe ich es hier gepostet.

Aber zu meinem Problem:

Ich habe ein Programm unter Linux erstellt und dort kompiliert es auch mit gcc-3.3.4 völlig problemlos, allerdings erhalte ich unter Windows mit dem Borland Compiler folgende Meldung:
Code:
E:\temp\QBN-Sim>make
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
        bcc32 -c -tWR -w -w-hid -tWM -O2 -x- -RT- -DUNICODE -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -I"." -I"C:\Qt\3.2.1NonCommercial\include" -I"E:\temp\QBN-S
im" -I"C:\Qt\3.2.1NonCommercial\mkspecs\win32-borland" -odiagramview.obj diagramview.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
diagramview.cpp:
Error E2318 diagramview.cpp 63: 'QCanvasItem' is not a polymorphic class type in function DiagramView::contentsMousePressEvent(QMouseEvent *)
Error E2318 diagramview.cpp 64: 'QCanvasItem' is not a polymorphic class type in function DiagramView::contentsMousePressEvent(QMouseEvent *)
Error E2318 diagramview.cpp 77: 'QCanvasItem' is not a polymorphic class type in function DiagramView::contentsMousePressEvent(QMouseEvent *)
Error E2318 diagramview.cpp 102: 'QCanvasItem' is not a polymorphic class type in function DiagramView::contentsMousePressEvent(QMouseEvent *)
Error E2318 diagramview.cpp 138: 'QCanvasItem' is not a polymorphic class type in function DiagramView::contentsMousePressEvent(QMouseEvent *)
Error E2318 diagramview.cpp 164: 'QCanvasItem' is not a polymorphic class type in function DiagramView::contentsMouseDoubleClickEvent(QMouseEvent *)
*** 6 errors in Compile ***

** error 1 ** deleting diagramview.obj
Ich vermute das das an meinen dynamic_casts liegt, hier ein Codeausschnitt:
Code:
QCanvasEllipse *elli = dynamic_cast<QCanvasEllipse*>(currentItem);
   QCanvasLine *line = dynamic_cast<QCanvasLine*>(currentItem);
   
   if(elli && event->button() == LeftButton) {
      currentItem->move(event->pos().x(), event->pos().y());
      currentItem->show();
      currentItem = 0;
      unsetCursor();
   } else if(currentItem && event->button() == LeftButton) {
      if(startX  == 0 && startY == 0) {
         QCanvasItemList il = canvas()->collisions(event->pos());
	 bool found = false;
	 QCanvasItemList::Iterator it = il.begin();
	 while(!found && it != il.end()) {
	    if(QCanvasEllipse *elli = dynamic_cast<QCanvasEllipse*>(*it)) {
	       startX = (int)elli->x();
	       startY = (int)elli->y();
	       found = true;
Also, ich sehe zwei Möglichkeiten:
1. Jemand kann mir einen Windows Compiler nennen der mit dynamic_cast umgehen kann.
2. Ich stelle alles auf rtti() um, was mir aber leider auf Anhieb nicht gelungen ist.

Bin für jeden Tip dankbar!

Bye,
Wishmaster