Fehler nach benutzen der STL



  • ich habe

    #include <iostream>
    #include <vector>
    
    using namespace std;
    

    eingebunden

    und so wollte einen vector erstellen.

    struct TEXT
    {
       const char* string;
       int         x;
       int         y;
    }
    
    vector<TEXT>	   m_Sting;
    

    und habe diese Meldung bekommen:

    error LNK2001: Nichtaufgeloestes externes Symbol __CrtDbgReport

    PS: auch Verbesserungsvorschläge sind sehr erwünscht. Das sind meine ersten Schritte mit der STL 😃



  • liegt höchstwahrscheinlich nicht am programm, sondern daran, dass da irgendeine bibliothek (sieht aus nach C-Lib o.ä.) fehlt...



  • ich habe jetzt die libcpmtd.lib über eine Compilerdirektive eingebunden. Der Fehler erscheint immer noch. Ich habe ein ähliches Programm. Bei diesem Funktioniert das.



  • k/a ob das was mit dem Fehler zu tun hat, aber bei dem geposteteten Code fehlt hinter dem struct ein ;



  • Der ist beim kopieren verloren gegeangen 😃

    Wenn ich

    #include <iostream>

    includiere kommt der fehler.



  • Ich habe das jetzt geändert in

    #include <iostream.h>

    Und es geht. Weiss jemand woran das liegt.

    Ich habe auch Beispiele die ohne .h funktionieren. Aber mein Programm nicht 😕



  • ich vermute mal, du hast irgend wie dein Compiler falsch eingerichtet. Vielleicht solltest du mal zu neuesten Version upgraden oder (bei kommerziellen Systemen) alle Patches und Service Packs installieren.



  • Hi,
    Was für einen Compiler verwendest du?
    Denn alle neuen müssten diesen Standard unterstützen.

    cu max



  • Ich habe den VC++ 6.0

    Ich habe auch ein Beispiel-Projekt das
    die Dateien so includiert

    #include <iostream>
    #include <vector>

    Bei meinem Projekt geht es nur so:

    #include <iostream.h>
    #include <vector>

    Kann man das einstellen? Wen ja wo? 😕



  • Ich hatte mal ein ähnliches Problem. Die Lösung ist: Ahnscheinend kann man keine Definitionen aus der Funktion in der der Container verwendet wird als Typ-Parameter für den Container benutzen (warum das so ist: keine Ahnung). Auf alle Fälle klappts, sobald Du das struct ausserhalb der Funktion, in der Du vector verwendest definierst, z.B.:

    #include <iostream> 
    #include <vector> 
    
    using namespace std;
    
    struct TEXT 
    { 
       const char* string; 
       int         x; 
       int         y; 
    };
    
    int main()
    {
        vector<TEXT> m_Sting;
    }
    

    Das sieht nicht besonders schön aus, aber funktioniert (zumindest mit DevCPP und dem MinGW-Compiler...)! Mich würde aber schon auch noch interessieren, warum das nicht klappt, wenn das struct in der gleichen Funktion definiert wird, wie der vector???


Anmelden zum Antworten