Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Problemm: Virtuellen Destruktor in DLL exportieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.07.2007, 19:42 Uhr
tobb



Hi,

ich habe ein Problem.
Folgender Code

Code:
//test.cpp
//Kurz zum Test ein Objekt erzeugen und wieder löschen
tE::GraphicObject *Baum = new tE::GraphicObject();
delete Baum;


gibt immer diesen Fehler



Und zwar wird dieser Fehler erst von

Code:
delete Baum;

ausgelöst.


Folgendermaßen sieht es aus:
tE::GraphicObject ist eine Klasse, deren Funktionen in einer DLL stecken.
Header: (der in test.cpp includiert wird)

Code:
//...
#define tE_EXPORT __declspec(dllexport)
//...
tE_EXPORT class GraphicObject
{
public:
    //constructors
    tE_EXPORT GraphicObject();
    //...
    //destructor
    tE_EXPORT virtual ~GraphicObject();
    //...
protected:
    BITMAP *Bitmap
    int PosX
    int PosY
};



Und die Definition des Kon- und Destruktors (also genau die zwei einzigen Methoden, die für den Fehler verantwortlich sind) sieht folgendermaßen aus:

Code:
//...
//constructor
GraphicObject::GraphicObject()
    : Bitmap(0), PosX(0), PosY(0)
{
}
//...
//destructor
GraphicObject::~GraphicObject() //it's virtual
{
    if(Bitmap)
        destroy_bitmap(Bitmap);
}
//...


Also nur total banal.
Trotzdem kommt diese Fehler...

Mit einer kleinen Änderung kommt der Fehler allerdings nicht mehr... und zwar, wenn ich das Schlüssekwort "virtual" vor dem Desktruktor weglasse...
Diese muss aber sein, denn GraphicObject dient als Basisklasse und dessen Konstruktoren müssen bekanntlich virtuell sein...
Warum kommt der Fehler?

Dieser Post wurde am 17.07.2007 um 19:47 Uhr von tobb editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: