# Header-Datei einbinden



## Fussballgott19 (20. September 2011)

Ich möchte gerne aus einem Unterverzeichnis eine Header-Datei aus einem übergeordneten Verzeichnis einbinden. 

```
#include "../test.h"
```
Jedoch meckert hier Visual Studio folgenden an:
Die Datei "Quelle" kann nicht geöffnet werden: "../test.h" !! 

Danke


----------



## sheel (20. September 2011)

Dann ist die Pfadangabe falsch.
Es ist nicht immer ganz verständlich, von welchem Verzeichnis man ausgehen soll.
Probier noch ein ../ oder weg oder so...


----------



## Fussballgott19 (20. September 2011)

nee also irgednwie macht er bei mir was er will. Ich habe folgende Struktur:
Oberste Ebene test.h
UnterOrdner test1.h
unterunterOrdner test2.h

Nun will ich in test1.h die test.h einbinden und in test2.h die test1.h!!
Für mein Verständnis müsste das dann so aussehen:
test1.h: #include "../test.h"
test2.h: #include "../test1.h"
Richtig? Meckert aber rum!


----------



## Steiner_B (20. September 2011)

Hallo,

Grundsätzlich ist deine Variante richtig. Welche Meldungen bekommst du denn genau?
Außerdem Achtung: Die Struktur die du in deinem Visual-Studio Projekt hast muss nicht die selbe sein wie auf der Festplatte. Include-Pfade beziehen sich immer auf die Festplatte.


----------



## FSA (20. September 2011)

Eigentlich mache ich es so:

```
#include "test.h"
#include "../test1.h"
#include "../test2.h"
```
Er müsste die Oberste eben als Arbeitsverzeichnis nehem oder hast du den Ausgabeordner als Arbeitsverzeichnis?
MFG


----------



## Steiner_B (20. September 2011)

Moment,



> Er müsste die Oberste eben als Arbeitsverzeichnis nehem oder hast du den Ausgabeordner als Arbeitsverzeichnis?


Das Arbeitsverzeichnis hat mit Include-Pfaden nix zu tun. Das gibt nur an welches der Ordner ist aus dem das Programm beim Debuggen gestartet wird. Was du meinst sind glaub ich die Additional Include Directorys, aber selbst dann sind die von dir geposteten Pfade nicht korrekt, 
	
	
	



```
test1.h: #include "../test.h"
test2.h: #include "../test1.h"
```
 stimmt schon. Meine Vermutung ist immer noch das die Filter im Visual Studio einfach nicht mit den Ordnern auf der HD übereinstimmen.


----------



## Fussballgott19 (21. September 2011)

Er sagt immer die Datei "Quelle" kann nicht geöffnet werden: "../test.h
Aber von den Ordnern her passte auch auf der Festplatte! Ich versteh es nicht!


----------



## MCoder (21. September 2011)

Wo liegt denn die cpp, in die du das include einfügst, in "UnterOrdner " ?

Gruß
MCoder


----------



## Fussballgott19 (21. September 2011)

@mCoder ich füge das in eine header ein! 

Aber ein anderes Problem udn zwar kommt beim kompilieren folgender Fehler:

1>creator\ClusterGraphCreator.cpp(1): warning C4627: "#include "../stdafx.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1>          "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>creator\ClusterGraphCreator.cpp(2): warning C4627: "#include "ClusterGraphCreator.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1>          "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>creator\ClusterGraphCreator.cpp(37): fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "StdAfx.h"" einzufügen?


----------



## MCoder (21. September 2011)

Hallo,

wenn du ein Include mit relativer Pfadangabe einfügst (egal ob in .h oder .cpp), muss der Include-Pfad relativ zu dem Speicherort sein, an dem die Source liegt, in die du einfügst. Deswegen meine Frage, wo in dem Verzeichnisgestrüpp diese Source überhaupt liegt.

Das andere Problem hat dieselbe Ursache, dass nämlich "../stdafx.h" nicht gefunden wird. Die da mit dranhängenden Meldungen sind alles nur Folgefehler.

Gruß
MCoder


----------

