Unsolved 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? -
-
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 -
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.