C++ Header einbinden und per include verwenden?
Hallo zusammen,
Zur Zeit arbeite ich ein Buch zu C++ durch. Nun habe ich vor ein paar Kapitel eine Template Klasse mit dem Namen Singleton erstellt.
Nun wollte ich diese Klasse in dem aktuellen Projekt verwenden. Doch egal wie ich diese .h Datei einbinde, in der Projektmappe wird sie mir zwar
angezeigt, doch in meiner CLogfile.h kann ich sie nicht per #include einbinden.
Auch befindet sich die Klasse überhaupt nicht in meiner Projektmappe, es schein als würde nur ein Link zu der Datei gespeichert. Wenn ich eine neue Klasse erstelle und den Code einfach paste, kann ich sie einbinden.
Aber dass kann doch nicht wirklich so sein. Ich habe vor paar Tage in einem anderen Projekt die Singleton.h verwendet, dort funktionierte das einbinden völlig Problem los.
Normalerweiße sollte er doch die Klasse, wenn ich auf Hinzufügen->Vorhandenes Element gehe, in meine Projektmappe KOPIEREN. Doch in meiner Projektmappe ist nichts vorhanden. Sie wird mir zwar wie auf dem Bild angezeigt, doch wenn ich über den Explorer in die Mappe gehe, ist dort keine Klasse.
Die Klasse lässt sich seltsamer weiße über die IDE öffnen, warscheinlich weils einfach nur verlinkt a lá Verknüpfung ist. Davon auch noch ein Bild
Hoffe ihr habt verstanden um was es geht.
2 Antworten
warum sollte etwas normalerweise kopiert werdern ?
sehe ich genau anders , wenn ich was einbinden will an einem bestimmten ort, dann kopiere ich das da hin weil das ist die source und dann binde ich das ein . deswegen findest du das auch nicht, weil du den realen pfad nehmen musst und nicht include standard welches auf dein projektfolder zeigt
Aus C# kenne ich das auch anders. Wenn ich eine Klasse von einem anderen Projekt in das aktuelle einfüge, wird mir die Klasse auch in den aktuellen Projektordner kopiert. Da muss ich auch nicht alles zusammen suchen. Selbe bei Nu-Get dort legt die IDE auch alle benötigte Dateien in meinen Eigenen Ordner.
Du kannst auch einen relativen Pfad verwenden. Wenn deine C Datei im src Folder liegt und deine Headerdatei im inc Folder dann kannst du eine Datei mit dem Beispielnamen header.h mit #include"../inc/header.h" einbinden.
Einfacher ist es aber wenn du in den Compileroptionen den Ordern inc zu den Includepaths hinzufügst. Dann kannst du sie mittels #include "header.h" einbinden.
Gut, wenn ich sie selber aus der einen Projektmappe in die aktuelle kopiere, dann kann ich sie auch normal einbinden.
Aber dass kann doch nicht wirklich so sein, dass ich selber alle Klassen mir zusammenkopieren muss, und dann in den Ordner werfe.
Gibt es da bei der Vorhandenes Element hinzufügen nicht eine Option in den Einstellungen, dass er die Datei selber in meinen Ordner kopiert. Und nicht nur den relativen Pfad nimmt. Die IDE greift einen bei so vielen Sachen unter die Armen, kann mir nicht vorstellen, dass es da keine Settings für gibt.
Und wie gesagt, vor paar Projekte hat das einbinden ohne Probleme funktioniert.