Announcement

Collapse
No announcement yet.

Delphi-Umsteiger: #include-Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi-Umsteiger: #include-Problem

    Hallo allerseits!

    Bin Umsteiger von Delphi auf BC++B und habe folgendes Problem:

    Ich habe eine TypeDefs.cpp und TypeDefs.h - Datei mit einem Objekt, das TPara heisst und von TObject abstammt. Es ist auch in
    TypeDefs.h als Objektinstanz deklariert:
    TPara *Para;

    Diese Header-Datei möchte ich in nehreren cpp-dateien verwenden, da ich diese eine Objektinstanz auch in mehreren Formularen
    benötige.

    In Delphi binde ich einfach die Unit vi "uses <unitname> ein. In c++ bekomme ich eine Linker-Warnung

    Public symbol _Para defined in both module <modul_1> and <modul_2>.

    Ich habe wirklich mehrfach
    #include TypeDefs.h

    in meine cpp-Dateien stehen, ud warum die Meldung kommt ist mir auch klar.

    Wie geht es in C++, einer Datei mitzuteilen, dass sie eine Funktion oder ein Objekt aus einer anderen Datei verwenden soll, ohne
    dass die ganze Datei gleich mehrfach gelinkt wird?

    In Delphi schreibe ich einfach

    UnitX;
    interface
    uses UnitY;

    und ich kann UnitY in UnitZ auch noch mit einbinden, ohne
    daß es zu deartigen Meldunghen kommt.

    Wer kann mir helfen?

    Gruß

    Christoph

  • #2
    Hallo Christoph,

    In der Datei TypeDefs.h muß stehen:

    extern TPara *Para;

    Damit wird allen Modulen diese Variable bekanntgemacht. Wirklich deklariert werden darf sie aber nur einmal, und zwar in der Datei TypDefs.cpp:

    TPara *Para;

    Gruß - Günthe
    Günther

    Comment

    Working...
    X