dumpcpp: Header-Datei bringt compilier-errors



  • Hallo,
    ich habe mittels dumpcpp eine dll in x.h und x.cpp erstellt.
    Die DLL stellt COM-Objekte bereit.
    In einer Zeile wird die Funktion inline bool EOF() nicht akzeptiert und mit eine Compilerfehler abgebrochen.
    x.h:2747: Fehler: expected unqualified-id before '-' token
    inline bool EOF();
    ^
    Ein Namensraum X für die Klasse ist definiert und wird im Hauptprogramm auch mit using X definiert.
    Ich vermute, dass die Funktion EOF() noch an anderer Stelle in Qt definiert ist und es daher zu diesem Fehler kommt.
    Hat jemand eine Idee wie ich das korrigieren kann?


  • Moderators

    @apresys

    Hallo und willkommen bei devnet forum

    Lösche das inline. Dann sollte das Kompilieren funktionieren. Du wirst nur einen anderen Fehler bekommen, da die Implementation zu EOF fehlt.

    Übrigens diese Frage hat überhaupt nichts mit Qt zu tun.

    Schaue dir einmal die Definition von inline an.



  • da dumpcpp ein QT-Tool ist und ich nur das daraus entstandene Ergebnis nutze,
    bin ich das meine Frage schon etwas damit zu tun hat.
    Dein Vorschlag hat leider das gleiche Ergebnis gebracht. Wenn ich aber den Namen der Funktion EOF() in z.B. AEOF() ändere,
    verschwindet die Fehlermeldung


  • Moderators

    @apresys

    Sorry, da hast du mich kalt erwischt. Noch nie dieses Tools verwendet und daher mein Kommentar.

    Mit dem inline werden eigentlich Implementationen von ganzen Routinen im Header-File verwendet. Daher auch meine Anmerkung und link zur Definition des inline-parameters. Das inline dient eigentlich dazu dem Kompiler anzuweisen den nachfolgenden Code jeweils beim Aufruf einzufügen. In der Regel wird dies für sehr kurze Routinen verwendet, da sonst das Ergebnis des Kompilers unnötig aufgeblasen wird.

    Mit der Zeile und der Fehlermeldung von dir alleine, kann man aus meiner Sicht viel anfangen. Du müsstest wahrscheinlich schauen, wo die andere Version definiert ist. Eventuell ist nur eine Zeile mit mit der Deklaration vorhanden und irgendetwas mit der Implementation ist schiefgegangen.

    So wie es aussieht, ist deine Vermutung korrekt und es handelt sich wohl um Neudefinition derselben Funktion. Dies aber normalerweise auch klar vom Kompiler angegeben werden.

    Auf der anderen Seite zeigt die Meldung eher an, dass es ein Problem vorher und dies nur an dieser Stelle erkannt wird. Das passt aber irgendwie nicht mit deiner Beobachtung mit AEOF überein.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.