CGridCtrl

Dieses Thema CGridCtrl im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Paulchen29, 3. Apr. 2006.

Thema: CGridCtrl Hallo, versuche gerade das CGridCtrl von CodeGuru in mein Visual C++ 6.0 Projekt einzubinden. Habe dazu auch schon...

  1. Hallo,

    versuche gerade das CGridCtrl von CodeGuru in mein Visual C++ 6.0 Projekt einzubinden. Habe dazu auch schon ein Thema erstellt bei dem mir auch schon viel geholfen wurde. Zum nachlesen: http://www.wintotal-forum.de/index.php/topic,109132.0.html

    Habe alles so gemacht, wie es mir beschrieben wurde. Glaube ich zumindest!  :)

    Jetzt bekomme ich aber die mir unverständliche Fehlermeldung:

    Code:
    ini.obj : error LNK2001: unresolved external symbol public: virtual __thiscall
    CGridCtrl::~CGridCtrl(void) (??1CGridCtrl@@UAE@XZ)
    iniDlg.obj : error LNK2001: unresolved external symbol public: virtual __thiscall CGridCtrl::~CGridCtrl(void) (??1CGridCtrl@@UAE@XZ)
    iniDlg.obj : error LNK2001: unresolved external symbol public: __thiscall CGridCtrl::CGridCtrl(int,int,int,int) (??0CGridCtrl@@QAE@HHHH@Z)
    
    Weiss jemand damit was anzufangen? Das einzigste was ich unter GOOGLE zu dieser Meldung gefunden habe, war immer: Es fehlt eine Libary.  Aber es gibt keine Libary, die ich einbinden könnte!

    Danke für Eure Hilfe

    P.S.: Sorry, wenn ich deswegen einen neuen Thread anfange, aber ich denke Ihr wisst ja selber wie das ist, wenn ein Thread über einen Monat gelegen hat, dann liest keiner mehr, das was neu hinzugekommen ist.
     
  2. Hmm ... der Linker findet den Konstruktor und den Destruktor der Klasse CGridCtrl nicht in der Objektdatei.
    Sind alle nötigen *.cpp-Dateien ins Projekt eingebunden? Sicher ja, denn sonst gäbe es wahrscheinlich mehr Fehler beim Linken. Hast Du das Demoprogramm mal erzeugt?
     
  3. Also jetzt muss ich Dir mal vielen vielen Dank sagen!

    Super es läuft! Habe die Klassen nicht eingebunden. Doof eigentlich, aber ich dachte er holt sich die aus der Header. Könnt Dich umarmen!   ;D

    Vielen Dank nochmal!
     
  4. Das macht der Compiler so. Darum ist es ihm auch wurscht, ob eine Funktion bloß in der Klassendefinition vorhanden oder wirklich implementiert ist. Er kompiliert eben alles, was er an Code sieht, in Objektdateien.
    Der Linker, der anschließend Deine exe (oder was auch immer) zusammenbauen will, guckt dann aber dumm aus der Wäsche, wenn eine Funktion, die irgendwo benötigt wird, in den Objektdateien gar nicht existiert.
    Du hast sicher einen Minimaltest geschrieben; ansonsten hätte es für jede aufgerufene Methode von CGridCtrl einen solchen Fehler gegeben. Bei Dir wird nur eine Instanz der Klasse erzeugt und wieder gelöscht, darum müssen zumindest Konstruktor und Destruktor auch reell vorhanden sein, wenn sie deklariert wurden.