Klassen bilden nur wie?



  • Hallo

    habe nun die htmlausgabe.cpp in mein projekt included,

    Hm... Du must htmlausgabe.cpp deinem Projekt hinzufügen, und htmlausgabe.h in den Dateien includen, in dem du diese brauchst.

    welche Header ich für AnsiString includieren muss?

    #include <vcl.h>
    

    bis bald
    akari



  • AnsiString ist wohl in dstring.h enthalten

    habe die dateien nun wie folgt geändert:

    .h

    //===================
    #ifndef htmlausgabe_H
    #define htmlausgabe_H
    //===================
    #include <dstring>
    using namespace std;
    //===================
    
    class htmlausgabe{
    
       public:
    
       htmlausgabe();
    
       bool setPath(AnsiString Path);
    
       AnsiString getPath(void);
    
    };
    
    //===================
    #endif
    

    .cpp

    #include "htmlausgabe.h"
    
    htmlausgabe::htmlausgabe(void)
    {
        bool i=true;
    };
    
    bool htmlausgabe::setPath(AnsiString Path)
    {
      AnsiString etwas;
    
      etwas="irgendwas";
      return true;
    };
    
    AnsiString htmlausgabe::getPath(void)
    {
       AnsiString Pfad="pfad";
       return (AnsiString)Pfad;
    }
    

    wenn ich nun

    htmlausgabe *HTML = new htmlausgabe();
    

    Kommmt wieder die Meldung:
    [C++ Fehler] tsserver_p1_u1.cpp(482): E2451 Undefiniertes Symbol 'HTML'

    hmm der war das auch wieder falsch?



  • Hallo

    hast du meinen Hinweis zum korrekten Einbinden bereits beachtet?

    bis bald
    akari



  • ok, hatte ich nicht gesehen

    habe nun über das menü die htmlausgabe.cpp hinzugefügt.
    im "hauptcode" habe ich nun

    #include "htmlausgabe.h"

    hinzugefügt und in der htmlausgabe.h das dstring zu dstring.h gemacht

    nur taucht der gleiche fehler wieder auf



  • also du musst wie akari schon sagte die htmlausgabe.cpp in dein Projekt hinzufügen und die zugehörige Header includieren. Lass auch Mal das void in:

    htmlausgabe::htmlausgabe(void);
    

    weg, denn vll hat er ein Problem damit das du einmal mit und einmal ohne void schreibst. ist aber eher unverscheinlich.



  • nee, auch wenn ich das void weg lasse, kommt das gleiche dabei raus



  • Es gibt zwei Möglichkeiten:

    1. Der Compiler spuckt noch ein paar mehr Fehlermeldungen aus:
    E2451 Undefiniertes Symbol 'htmlausgabe'
    E2451 Undefiniertes Symbol 'HTML'
    E2303 Typname erwartet
    u.s.w.

    In dem Falle hast du das include "htmlausgabe.h" irgendwo, aber nicht in die tsserver_p1_u1.cpp reingeschrieben.

    2. Er mosert nicht die Zeile an, die du uns genannt hast. In dem Falle vermute ich, das du die Zeile

    htmlausgabe *HTML = new htmlausgabe;
    

    in irgend einer Funktion/Methode stehen hast und in einer vollkommen anderen Funktion/Methode versuchst darauf zuzugreifen.



  • sooo, jetzt hab ich es. er meckert nicht mehr.

    das problem lag nur dadrin, dass ich in meinem "hauptcode"
    noch eine funktion hatte die auch htmlausgabe() hieß. somit kam es wohl zu komplikationen ;).

    naja problem behben, ich danke euch viel mals!!

    (und ich war schon am verzweifeln)
    gruß
    thorsten



  • das sollte man als Progger aber schon am anfang lernen oder, wenn man 2 Funktionen mit dem gleichen Namen hat, dann klappt üblicherweise nichts mehr.



  • ja schon klar, nur habe ich daran gestern abend überhaupt nicht mehr gedacht, dass ich da noch eine funktion hatte die auch so hierß, war ja schon spät 😉

    für mein nächstes problem mach ich aber nen neuen thread am besten auf...


Anmelden zum Antworten