K
Hallo,
es gab ein wenig Chaos beim Includieren der Header.
Eines der Probleme lies sich per forward deklaration lösen. (Sorry, meinen Beitrag finde ich nicht mehr und in einer FAQ wurde er leider nicht aufgenommen :o( )
Die restlichen Fehler liesen sich durch einfaches weglassen der includes verwenden.
Generell sollte man nur dann einen Include setzen, wenn dieser unbedingt benötigt wird. Alleine durch die Tatsache, das der Compiler jede Unit neu Übersetzen muss wenn ich ein Header, der includiert wird, geändert wurde, sollte der anreiz sein an der ein oder anderen Stelle mit Forwarddeklarationen zu arbeiten.
Als Tip zur Fehlersuche:
Die Units einzeln Compilieren. Je nachdem in welcher Reihenfolge der VC auf die Idee kommt die Units zu kompilieren, kann der Effekt auftreten oder verborgen bleiben. Kann jedoch jede Unit für sich alleine Übersetzt werden, kann man sich sicher sein, das der Quellcode sich immer übersetzen lässt.
Ihr kennt doch Murphy, der Kunde hats eilig und plötzlich gibts Fehler im Quellcode die es noch nie gab - und das nur weil der Compiler anderst gelaunt ist und eine andere Reihenfolge nimmt