Problem beim Einbinden eines Klassenheadera in eine SDI-Anwendung



  • Hallo zusammen,

    ich bin hier kurz vorm verzweifeln.
    Ich habe in einer Testanwendung im Borland C++Builder 5 (Form1, Unit1) eine *.h und *cpp Datei angelegt um eine Klasse zu erstellen. In dieser Testanwendung läuft alles hervorragend. Ich kann die Klasse instanziieren und mit der Klasse arbeiten ohne Probleme.

    Jetzt möchte ich diese Klasse in meiner Hauptanwendung einbinden. Und da fängt das Problem an. Das funktioniert nicht.

    Ich habe die Header-Datei meiner Klasse in die Header-Datei meiner SDIMain.h aufgenommen:
    #include "Klasse.h"
    Ich möchte einen Zeiger auf eine neue Instanz anlegen, und zwar im private-Bereich des SDIMain-Headers (Ist ja nicht verboten, oder?).
    CKlasse* Instanz;
    Im Programm möchte ich dann bei Bedarf eine Instanz erzeugen:
    Instanz = new CKlasse;

    Und jetzt kommen beim Erzeugen die Fehlermeldungen "E2303: Typname erwartet" und "E2139 In Deklaration fehlt;" und die Zeile CKlasse* Instanz; im SDIMain-Header ist markiert.

    Hat irgendjemand eine Idee was da falsch läuft?

    Vielen Dank an euch.

    Grüße
    Christian



  • Hallo

    Das Prinzip ist richtig. Überprüf ob du wirklich den Include geschrieben hast wie hier gesagt, überprüf auf Schreibfehler, überprüf auf Folgefehler...

    bis bald
    akari



  • Danke für Deine Antwort Akari,

    der include ist im SDIMain.h drinnen, Rechtschreibung habe ich zig-mal überprüft.
    Meine Dateien heißen Serial.h und Serial.cpp, die Klasse CSerial
    Ich habe über Ansicht->Projektverwaltung die Datei Serial.cpp dem Projekt hinzugefügt und in der Klassenansicht erscheint auch die Klasse CSerial.

    In SDIMain.h steht
    #include "Serial.h"

    In der SDIMain-Klasse
    class TSDIAppForm : public TForm

    versuche ich mit
    private:
    CSerial* Port1;

    den Zeiger zu erzeugen.

    Ich habe zwar die Klasse schon versucht um zu benennen, aber ohne Erfolg.
    Gibt es da vielleicht trotzdem Probleme mit Namenskonventionen?

    Grüße



  • Problem gelöst!

    Ich hatte die Dateien der Klasse in ein Unterverzeichnis gelegt. Somit wurde auf dem "normalen" Include-Verzeichnis die Header-Datei natürlich nicht gefunden.

    Kleine Ursache - große Wirkung.

    Trotzdem danke für Deine Unterstützung Akari.

    Grüße
    Christian


Log in to reply